<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
        <title>SDK 5.10.0 Release Notes</title>
        
  <style type="text/css"><!--
BODY {
	font-family: "verdana", "arial", "helvetica", "sans-serif";
}
  --></style>
</head>

<body bgcolor="#FFFFFF">

<h2>SDK 5.10.0 Release Notes</h2>
<h3>Section Reference</h3>
<table cellpadding=0 cellspacing=2 border=0 summary="reference" >
<tr><td><a href="#section_about">Section 1: </a></td>
<td>&nbsp;&nbsp;</td><td> About This Document
</td>
<tr><td><a href="#section_docs">Section 2: </a></td>
<td>&nbsp;&nbsp;</td><td> Product Documentation
</td>
<tr><td><a href="#section_media">Section 3: </a></td>
<td>&nbsp;&nbsp;</td><td> Release Media
</td>
<tr><td><a href="#section_support">Section 4: </a></td>
<td>&nbsp;&nbsp;</td><td> Support
</td>
<tr><td><a href="#section_new">Section 5: </a></td>
<td>&nbsp;&nbsp;</td><td> New in this Release
</td>
<tr><td>&nbsp;&nbsp;<a href="#Watch-out-for-this">Section 5.1: </a></td>
<td>&nbsp;&nbsp;</td><td> Things to note
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#issue1">Section 5.1.1: </a></td>
<td>&nbsp;&nbsp;</td><td> Warmboot support for BCM5644x devices
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cmicm">Section 5.1.2: </a></td>
<td>&nbsp;&nbsp;</td><td> BCM56440 BFD, CES, IEEE-1588 preview
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#sirius_mixedFC">Section 5.1.3: </a></td>
<td>&nbsp;&nbsp;</td><td> No support for mixed 1-bit and 2-bit flow control in BCM88130/BCM88230 systems
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#polaris_SingleGrant">Section 5.1.4: </a></td>
<td>&nbsp;&nbsp;</td><td> No support for single grant mode in BCM88130/BCM88230 systems
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Caladan_kernel">Section 5.1.5: </a></td>
<td>&nbsp;&nbsp;</td><td> No support for BCM88020 family of devices in Linux Kernel mode
</td>
<tr><td>&nbsp;&nbsp;<a href="#new-hardware">Section 5.2: </a></td>
<td>&nbsp;&nbsp;</td><td> New Devices and Systems
</td>
<tr><td>&nbsp;&nbsp;<a href="#api-changes">Section 5.3: </a></td>
<td>&nbsp;&nbsp;</td><td> Summary of BCM and BCMX API changes
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#bfd">Section 5.3.1: </a></td>
<td>&nbsp;&nbsp;</td><td> Bidirectional Forwarding Detection
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ces">Section 5.3.2: </a></td>
<td>&nbsp;&nbsp;</td><td> Circuit Emulation Services
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cosq">Section 5.3.3: </a></td>
<td>&nbsp;&nbsp;</td><td> Class Of Serive Queue Management
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#fabric">Section 5.3.4: </a></td>
<td>&nbsp;&nbsp;</td><td> Fabric
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#field">Section 5.3.5: </a></td>
<td>&nbsp;&nbsp;</td><td> Field
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipfix">Section 5.3.6: </a></td>
<td>&nbsp;&nbsp;</td><td> IPFIX
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#knet">Section 5.3.7: </a></td>
<td>&nbsp;&nbsp;</td><td> knet
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#l3">Section 5.3.8: </a></td>
<td>&nbsp;&nbsp;</td><td> Layer 3 Management
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#macsec">Section 5.3.9: </a></td>
<td>&nbsp;&nbsp;</td><td> MAC Security
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mim">Section 5.3.10: </a></td>
<td>&nbsp;&nbsp;</td><td> Mac-in-Mac
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#mpls">Section 5.3.11: </a></td>
<td>&nbsp;&nbsp;</td><td> MPLS
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#multicast">Section 5.3.12: </a></td>
<td>&nbsp;&nbsp;</td><td> multicast
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#oam">Section 5.3.13: </a></td>
<td>&nbsp;&nbsp;</td><td> Operations and Management
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#pkt">Section 5.3.14: </a></td>
<td>&nbsp;&nbsp;</td><td> packet
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#policer">Section 5.3.15: </a></td>
<td>&nbsp;&nbsp;</td><td> Policer Management
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#port">Section 5.3.16: </a></td>
<td>&nbsp;&nbsp;</td><td> PORT
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ptp">Section 5.3.17: </a></td>
<td>&nbsp;&nbsp;</td><td> Precision Time Protocol
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#regex">Section 5.3.18: </a></td>
<td>&nbsp;&nbsp;</td><td> Regex 
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#rx">Section 5.3.19: </a></td>
<td>&nbsp;&nbsp;</td><td> Receive
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#stat">Section 5.3.20: </a></td>
<td>&nbsp;&nbsp;</td><td> stat
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#switch">Section 5.3.21: </a></td>
<td>&nbsp;&nbsp;</td><td> Switch Control
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#time">Section 5.3.22: </a></td>
<td>&nbsp;&nbsp;</td><td> Time
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#trunk">Section 5.3.23: </a></td>
<td>&nbsp;&nbsp;</td><td> Trunk Management
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tunnel">Section 5.3.24: </a></td>
<td>&nbsp;&nbsp;</td><td> Tunnel Management
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#TxBeacon">Section 5.3.25: </a></td>
<td>&nbsp;&nbsp;</td><td> TxBeacon
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#vlan">Section 5.3.26: </a></td>
<td>&nbsp;&nbsp;</td><td> VLAN Manangement
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#wlan">Section 5.3.27: </a></td>
<td>&nbsp;&nbsp;</td><td> WLAN 
</td>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#soc">Section 5.3.28: </a></td>
<td>&nbsp;&nbsp;</td><td> SOC properties
</td>
<tr><td><a href="#section_resolved5.10.0">Section 6: </a></td>
<td>&nbsp;&nbsp;</td><td> Resolved Issues for 5.10.0
</td>
<tr><td><a href="#section_platforms">Section 7: </a></td>
<td>&nbsp;&nbsp;</td><td> Device and Platform Support
</td>
<tr><td>&nbsp;&nbsp;<a href="#devices">Section 7.1: </a></td>
<td>&nbsp;&nbsp;</td><td> Switch Devices
</td>
<tr><td>&nbsp;&nbsp;<a href="#phys">Section 7.2: </a></td>
<td>&nbsp;&nbsp;</td><td> PHYs
</td>
<tr><td>&nbsp;&nbsp;<a href="#os">Section 7.3: </a></td>
<td>&nbsp;&nbsp;</td><td> Operating Systems
</td>
<tr><td>&nbsp;&nbsp;<a href="#cpu">Section 7.4: </a></td>
<td>&nbsp;&nbsp;</td><td> CPU Subsystems
</td>
<tr><td>&nbsp;&nbsp;<a href="#combinations">Section 7.5: </a></td>
<td>&nbsp;&nbsp;</td><td> CPU and Operating System Combinations
</td>
<tr><td>&nbsp;&nbsp;<a href="#refdesigns">Section 7.6: </a></td>
<td>&nbsp;&nbsp;</td><td> Reference Designs
</td>
<tr><td><a href="#section_Appendix_A">Section 8: </a></td>
<td>&nbsp;&nbsp;</td><td> SDK Externally Licensed Software Components
</td>
<tr><td>&nbsp;&nbsp;<a href="#EDITLINE_license_terms_and_conditions">Section 8.1: </a></td>
<td>&nbsp;&nbsp;</td><td> EDITLINE License terms and conditions
</td>
<tr><td>&nbsp;&nbsp;<a href="#CINT_license_terms_and_conditions">Section 8.2: </a></td>
<td>&nbsp;&nbsp;</td><td> CINT parser license terms and conditions
</td>
<tr><td>&nbsp;&nbsp;<a href="#CES_Driver_license_terms_and_conditions">Section 8.3: </a></td>
<td>&nbsp;&nbsp;</td><td> Circuit Emulation Service (CES) Driver terms and conditions
</td>
</table>
<hr noshade>
<h2>Alphabetical list of all APIs</h2>
<table cellpadding=0 cellspacing=2 border=0 summary="api" >
<tr><td><a href=#bcm_ces_egress_status_get><tt>bcm_ces_egress_status_get</tt></a></td>
<td>&nbsp;</td><td>Gets the CES service egress status.
</td></tr><tr><td><a href=#bcm_ces_init><tt>bcm_ces_init</tt></a></td>
<td>&nbsp;</td><td>Initialize CES module.
</td></tr><tr><td><a href=#bcm_ces_service_cas_status_get><tt>bcm_ces_service_cas_status_get</tt></a></td>
<td>&nbsp;</td><td>Get bitmask indicating which CAS bits have changed since last call.
</td></tr><tr><td><a href=#bcm_ces_service_config_get><tt>bcm_ces_service_config_get</tt></a></td>
<td>&nbsp;</td><td>Get the current configuration parameters for a CES service.
</td></tr><tr><td><a href=#bcm_ces_service_create><tt>bcm_ces_service_create</tt></a></td>
<td>&nbsp;</td><td>Allocate and configure a CES service. 
</td></tr><tr><td><a href=#bcm_ces_service_destroy><tt>bcm_ces_service_destroy</tt></a></td>
<td>&nbsp;</td><td>Deallocate a CES service. 
</td></tr><tr><td><a href=#bcm_ces_service_destroy_all><tt>bcm_ces_service_destroy_all</tt></a></td>
<td>&nbsp;</td><td>Deallocate all CES services.
</td></tr><tr><td><a href=#bcm_ces_service_enable_get><tt>bcm_ces_service_enable_get</tt></a></td>
<td>&nbsp;</td><td>Get CES service enable state.
</td></tr><tr><td><a href=#bcm_ces_service_enable_set><tt>bcm_ces_service_enable_set</tt></a></td>
<td>&nbsp;</td><td>Enables or disables a CES service.
</td></tr><tr><td><a href=#bcm_ces_service_ingress_cas_ABCD_get>bcm_ces_service_ingress_cas_ABCD_get</a></td>
<td>&nbsp;</td><td>Get ingress or egress ABCD bits for CES services.
</td></tr><tr><td><a href=#bcm_ces_service_pm_clear><tt>bcm_ces_service_pm_clear</tt></a></td>
<td>&nbsp;</td><td>Resets the performace monitoring stats for a CES seervice.
</td></tr><tr><td><a href=#bcm_ces_service_pm_get><tt>bcm_ces_service_pm_get</tt></a></td>
<td>&nbsp;</td><td>Gets the performace monitoring stats for a CES service.
</td></tr><tr><td><a href=#bcm_ces_service_rclock_config_get><tt>bcm_ces_service_rclock_config_get</tt></a></td>
<td>&nbsp;</td><td>Get the received clock timing configuration parameters for a CES
service.
</td></tr><tr><td><a href=#bcm_ces_service_rclock_config_set><tt>bcm_ces_service_rclock_config_set</tt></a></td>
<td>&nbsp;</td><td>Set the received clock timing configuration parameters for a CES
service.
</td></tr><tr><td><a href=#bcm_ces_services_cclk_config_get><tt>bcm_ces_services_cclk_config_get</tt></a></td>
<td>&nbsp;</td><td>Get the clock configuration parameters that are common to all CES
services.
</td></tr><tr><td><a href=#bcm_ces_services_cclk_config_set><tt>bcm_ces_services_cclk_config_set</tt></a></td>
<td>&nbsp;</td><td>Set the clock configuration parameters that are common to all CES
services.
</td></tr><tr><td><a href=#bcm_ces_services_clear><tt>bcm_ces_services_clear</tt></a></td>
<td>&nbsp;</td><td>Initialize CES services subsystem without affecting current hardware
state.
</td></tr><tr><td><a href=#bcm_ces_services_init><tt>bcm_ces_services_init</tt></a></td>
<td>&nbsp;</td><td>Initialize CES services subsystem. 
</td></tr><tr><td><a href=#bcm_ces_services_traverse><tt>bcm_ces_services_traverse</tt></a></td>
<td>&nbsp;</td><td>List all currently configured CES services.
</td></tr><tr><td><a href=#bcm_cosq_gport_mapping_set><tt>bcm_cosq_gport_mapping_set</tt></a></td>
<td>&nbsp;</td><td> Get or set the mapping from internal priority to COS queue.
</td></tr><tr><td><a href=#bcm_cosq_gport_mapping_get><tt>bcm_cosq_gport_mapping_get</tt></a></td>
<td>&nbsp;</td><td> Get or set the mapping from internal priority to COS queue.
</td></tr><tr><td><a href=#bcm_cosq_gport_multipath_add><tt>bcm_cosq_gport_multipath_add</tt></a></td>
<td>&nbsp;</td><td></td></tr><tr><td><a href=#bcm_cosq_gport_multipath_delete><tt>bcm_cosq_gport_multipath_delete</tt></a></td>
<td>&nbsp;</td><td></td></tr><tr><td><a href=#bcm_cosq_gport_multipath_get><tt>bcm_cosq_gport_multipath_get</tt></a></td>
<td>&nbsp;</td><td></td></tr><tr><td><a href=#bcm_cosq_gport_report_threshold_set><tt>bcm_cosq_gport_report_threshold_set</tt></a></td>
<td>&nbsp;</td><td>Get/set queue report thresholds
</td></tr><tr><td><a href=#bcm_cosq_gport_report_threshold_get><tt>bcm_cosq_gport_report_threshold_get</tt></a></td>
<td>&nbsp;</td><td>Get/set queue report thresholds
</td></tr><tr><td><a href=#bcm_cosq_pfc_config_get><tt>bcm_cosq_pfc_config_get</tt></a></td>
<td>&nbsp;</td><td> Configure Priority-based Flow control (PFC).
</td></tr><tr><td><a href=#bcm_cosq_pfc_config_set><tt>bcm_cosq_pfc_config_set</tt></a></td>
<td>&nbsp;</td><td> Configure Priority-based Flow control (PFC).
</td></tr><tr><td><a href=#bcm_field_qualify_DstL3EgressNextHops>bcm_field_qualify_DstL3EgressNextHops</a></td>
<td>&nbsp;</td><td>Qualify on consecutive Egress Next hops
<p>int bcm_field_qualify_DstL3EgressNextHops(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint32 data, uint32 mask);
</td></tr><tr><td><a href=#bcm_field_qualify_DstL3EgressNextHops_get>bcm_field_qualify_DstL3EgressNextHops_get</a></td>
<td>&nbsp;</td><td>Get match criteria for bcmFieldQualifyDstL3EgressNextHops qualifier from field entry  
<p>int bcm_field_qualify_DstL3EgressNextHops_get(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint32 *data, uint32 *mask);
</td></tr><tr><td><a href=#bcm_field_qualify_LlidValue>bcm_field_qualify_LlidValue</a></td>
<td>&nbsp;</td><td>Qualify on consecutive Egress Next hops
<p>int bcm_field_qualify_LlidValue(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint16 data, uint16 mask);
</td></tr><tr><td><a href=#bcm_field_qualify_LlidValue_get>bcm_field_qualify_LlidValue_get</a></td>
<td>&nbsp;</td><td>Get match criteria for bcmFieldQualifyLlidValue qualifier from field entry  
<p>int bcm_field_qualify_LlidValue_get(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint16 *data, uint16 *mask);
</td></tr><tr><td><a href=#bcm_field_qualify_SrcVirtualPortValid>bcm_field_qualify_SrcVirtualPortValid</a></td>
<td>&nbsp;</td><td>Qualify on whether Source Virtual port is valid 
<p>int bcm_field_qualify_SrcVirtualPortValid(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint8 data, uint8 mask);
</td></tr><tr><td><a href=#bcm_field_qualify_SrcVirtualPortValid_get>bcm_field_qualify_SrcVirtualPortValid_get</a></td>
<td>&nbsp;</td><td>Get match criteria for bcmFieldQualifySrcVirtualPortValid qualifier from field entry  
<p>int bcm_field_qualify_SrcVirtualPortValid_get(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint8 *data, uint8 *mask);
</td></tr><tr><td><a href=#bcm_field_stat_attach><tt>bcm_field_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach counters entries to a field group
</td></tr><tr><td><a href=#bcm_field_stat_counter_get><tt>bcm_field_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get counter statistic values for a field entity
</td></tr><tr><td><a href=#bcm_field_stat_counter_set><tt>bcm_field_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set counter statistic values for a field entity
</td></tr><tr><td><a href=#bcm_field_stat_create_id><tt>bcm_field_stat_create_id</tt></a></td>
<td>&nbsp;</td><td>Create stat collection entity with specified Statistics entity ID value.
</td></tr><tr><td><a href=#bcm_field_stat_detach><tt>bcm_field_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach counters entries to a field group.
</td></tr><tr><td><a href=#bcm_field_stat_id_get><tt>bcm_field_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given field group.
</td></tr><tr><td><a href=#bcm_knet_filter_t_init><tt>bcm_knet_filter_t_init</tt></a></td>
<td>&nbsp;</td><td>Initialize a <tt>bcm_knet_filter_t</tt> structure.
</td></tr><tr><td><a href=#bcm_knet_netif_t_init><tt>bcm_knet_netif_t_init</tt></a></td>
<td>&nbsp;</td><td>Initialize a <tt>bcm_knet_netif_t</tt> structure.
</td></tr><tr><td><a href=#bcm_l3_egress_stat_attach><tt>bcm_l3_egress_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach counters entries to the given L3 Egress interface.
</td></tr><tr><td><a href=#bcm_l3_egress_stat_counter_get><tt>bcm_l3_egress_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get the specified counter statistic for a L3 egress interface.
</td></tr><tr><td><a href=#bcm_l3_egress_stat_counter_set><tt>bcm_l3_egress_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set the specified counter statistic for a L3 egress interface.
</td></tr><tr><td><a href=#bcm_l3_egress_stat_detach><tt>bcm_l3_egress_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach  counters entries to the given L3 Egress interface.
</td></tr><tr><td><a href=#bcm_l3_egress_stat_id_get><tt>bcm_l3_egress_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given L3 Egress interface.
</td></tr><tr><td><a href=#bcm_l3_ingress_stat_attach><tt>bcm_l3_ingress_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach counters entries to the given L3 ingress interface.
</td></tr><tr><td><a href=#bcm_l3_ingress_stat_counter_get><tt>bcm_l3_ingress_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get counter statistic values for a l3 interface object.
</td></tr><tr><td><a href=#bcm_l3_ingress_stat_counter_set><tt>bcm_l3_ingress_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set counter statistic values for a l3 interface object.
</td></tr><tr><td><a href=#bcm_l3_ingress_stat_detach><tt>bcm_l3_ingress_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach  counters entries to the given L3 ingress interface.
</td></tr><tr><td><a href=#bcm_l3_ingress_stat_id_get><tt>bcm_l3_ingress_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given L3 ingress interface.
</td></tr><tr><td><a href=#bcm_l3_vrf_stat_attach><tt>bcm_l3_vrf_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach   counters entries to the given VRF.
</td></tr><tr><td><a href=#bcm_l3_vrf_stat_counter_get><tt>bcm_l3_vrf_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get L3 VRF counter value for specified VRF statistic type
</td></tr><tr><td><a href=#bcm_l3_vrf_stat_counter_set><tt>bcm_l3_vrf_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set L3 VRF counter value for specified VRF statistic type
</td></tr><tr><td><a href=#bcm_l3_vrf_stat_detach><tt>bcm_l3_vrf_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach   counters entries to the given VRF.
</td></tr><tr><td><a href=#bcm_l3_vrf_stat_id_get><tt>bcm_l3_vrf_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given vrf.
</td></tr><tr><td><a href=#bcm_macsec_port_capability_get><tt>bcm_macsec_port_capability_get</tt></a></td>
<td>&nbsp;</td><td>Get the port capability for the specified port.
</td></tr><tr><td><a href=#bcm_mpls_label_stat_attach><tt>bcm_mpls_label_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach counters entries to the given mpls label and gport
</td></tr><tr><td><a href=#bcm_mpls_label_stat_counter_get><tt>bcm_mpls_label_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get counter statistic values for specific MPLS label and gport
</td></tr><tr><td><a href=#bcm_mpls_label_stat_counter_set><tt>bcm_mpls_label_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set counter statistic values for specific MPLS label and gport
</td></tr><tr><td><a href=#bcm_mpls_label_stat_detach><tt>bcm_mpls_label_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach counters entries to the given mpls label and gport
</td></tr><tr><td><a href=#bcm_mpls_label_stat_enable_set><tt>bcm_mpls_label_stat_enable_set</tt></a></td>
<td>&nbsp;</td><td>Enable/disable statistics collection for MPLS label or MPLS gport
</td></tr><tr><td><a href=#bcm_mpls_label_stat_id_get><tt>bcm_mpls_label_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given mpls label and gport.
</td></tr><tr><td><a href=#bcm_mpls_port_stat_attach><tt>bcm_mpls_port_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach counters entries to the given mpls gport and vpn
</td></tr><tr><td><a href=#bcm_mpls_port_stat_counter_get><tt>bcm_mpls_port_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get counter statistic values for specific vpn and gport
</td></tr><tr><td><a href=#bcm_mpls_port_stat_counter_set><tt>bcm_mpls_port_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set counter statistic values for specific vpn and gport
</td></tr><tr><td><a href=#bcm_mpls_port_stat_detach><tt>bcm_mpls_port_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach counters entries to the given mpls port and vpn
</td></tr><tr><td><a href=#bcm_mpls_port_stat_id_get><tt>bcm_mpls_port_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given mpls gport and vpn.
</td></tr><tr><td><a href=#bcm_multicast_egress_object_encap_get><tt>bcm_multicast_egress_object_encap_get</tt></a></td>
<td>&nbsp;</td><td>Get the multicast encapsulation ID for <tt>egress_object</tt> type replication.
</td></tr><tr><td><a href=#bcmx_multicast_egress_object_encap_get><tt>bcmx_multicast_egress_object_encap_get</tt></a></td>
<td>&nbsp;</td><td>Get the multicast encapsulation ID for <tt>egress_object</tt> type replication.
</td></tr><tr><td><a href=#bcm_policer_action_add><tt>bcm_policer_action_add</tt></a></td>
<td>&nbsp;</td><td>Configure the action for an Action Id .
</td></tr><tr><td><a href=#bcm_policer_action_create><tt>bcm_policer_action_create</tt></a></td>
<td>&nbsp;</td><td>Create a new policer action
</td></tr><tr><td><a href=#bcm_policer_action_destroy><tt>bcm_policer_action_destroy</tt></a></td>
<td>&nbsp;</td><td>Destroy a policer action
</td></tr><tr><td><a href=#bcm_policer_action_get><tt>bcm_policer_action_get</tt></a></td>
<td>&nbsp;</td><td>Get the param value for an action in policer action table.
</td></tr><tr><td><a href=#bcm_policer_envelop_create><tt>bcm_policer_envelop_create</tt></a></td>
<td>&nbsp;</td><td>Allocate a micro or a macro meter policer. 
</td></tr><tr><td><a href=#bcm_port_control_phy_timesync_set><tt>bcm_port_control_phy_timesync_set</tt></a></td>
<td>&nbsp;</td><td>Retrieved the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcm_port_control_phy_timesync_get><tt>bcm_port_control_phy_timesync_get</tt></a></td>
<td>&nbsp;</td><td>Retrieved the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcmx_port_control_phy_timesync_set><tt>bcmx_port_control_phy_timesync_set</tt></a></td>
<td>&nbsp;</td><td>Retrieved the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcmx_port_control_phy_timesync_get><tt>bcmx_port_control_phy_timesync_get</tt></a></td>
<td>&nbsp;</td><td>Retrieved the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcm_port_phy_timesync_config_set><tt>bcm_port_phy_timesync_config_set</tt></a></td>
<td>&nbsp;</td><td>Set/Get the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcm_port_phy_timesync_config_get><tt>bcm_port_phy_timesync_config_get</tt></a></td>
<td>&nbsp;</td><td>Set/Get the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcmx_port_phy_timesync_config_set><tt>bcmx_port_phy_timesync_config_set</tt></a></td>
<td>&nbsp;</td><td>Set/Get the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcmx_port_phy_timesync_config_get><tt>bcmx_port_phy_timesync_config_get</tt></a></td>
<td>&nbsp;</td><td>Set/Get the port configuration for the specified device or for all ports known to BCMX.
</td></tr><tr><td><a href=#bcm_port_phy_timesync_config_t_init><tt>bcm_port_phy_timesync_config_t_init</tt></a></td>
<td>&nbsp;</td><td>Initialize a Port Configuration structure.
</td></tr><tr><td><a href=#bcmx_port_phy_timesync_config_t_init><tt>bcmx_port_phy_timesync_config_t_init</tt></a></td>
<td>&nbsp;</td><td>Initialize a Port Configuration structure.
</td></tr><tr><td><a href=#bcm_port_pon_info_get><tt>bcm_port_pon_info_get</tt></a></td>
<td>&nbsp;</td><td>Get or set multiple port characteristics for PON and link port.
</td></tr><tr><td><a href=#bcm_port_pon_info_set><tt>bcm_port_pon_info_set</tt></a></td>
<td>&nbsp;</td><td>Get or set multiple port characteristics for PON and link port.
</td></tr><tr><td><a href=#bcm_port_stat_attach><tt>bcm_port_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach  counter entries to the given gport.
</td></tr><tr><td><a href=#bcm_port_stat_counter_get><tt>bcm_port_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get   counter values for specified gport based on port statistic type. 
</td></tr><tr><td><a href=#bcm_port_stat_counter_set><tt>bcm_port_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set   counter values for specified gport based on port statistic type. 
</td></tr><tr><td><a href=#bcm_port_stat_detach><tt>bcm_port_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach counter entries to the given gport.
</td></tr><tr><td><a href=#bcm_port_stat_id_get><tt>bcm_port_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given gport.
</td></tr><tr><td><a href=#bcm_port_tdm_cas_abcd_get><tt>bcm_port_tdm_cas_abcd_get</tt></a></td>
<td>&nbsp;</td><td>Get TDM port CAS ABCD bits.
</td></tr><tr><td><a href=#bcm_port_tdm_cas_status_get><tt>bcm_port_tdm_cas_status_get</tt></a></td>
<td>&nbsp;</td><td>Get TDM port CAS change bits.
</td></tr><tr><td><a href=#bcm_port_tdm_ces_ports_get><tt>bcm_port_tdm_ces_ports_get</tt></a></td>
<td>&nbsp;</td><td>Get associated CES ports.
</td></tr><tr><td><a href=#bcm_port_tdm_config_set><tt>bcm_port_tdm_config_set</tt></a></td>
<td>&nbsp;</td><td>Configure a TDM port attributes.
</td></tr><tr><td><a href=#bcm_port_tdm_config_get><tt>bcm_port_tdm_config_get</tt></a></td>
<td>&nbsp;</td><td>Configure a TDM port attributes.
</td></tr><tr><td><a href=#bcm_port_timesync_config_get><tt>bcm_port_timesync_config_get</tt></a></td>
<td>&nbsp;</td><td>Get timesync configurations for the port.
</td></tr><tr><td><a href=#bcm_port_timesync_config_set><tt>bcm_port_timesync_config_set</tt></a></td>
<td>&nbsp;</td><td>Set timesync configurations for the port.
</td></tr><tr><td><a href=#bcm_ptp_acceptable_master_table_add><tt>bcm_ptp_acceptable_master_table_add</tt></a></td>
<td>&nbsp;</td><td>Add PTP Clock Acceptable Master Table Entry
</td></tr><tr><td><a href=#bcm_ptp_acceptable_master_table_clear><tt>bcm_ptp_acceptable_master_table_clear</tt></a></td>
<td>&nbsp;</td><td>Clear PTP Clock Acceptable Master Table
</td></tr><tr><td><a href=#bcm_ptp_acceptable_master_table_enabled_get><tt>bcm_ptp_acceptable_master_table_enabled_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Acceptable Master Table Enabled State
</td></tr><tr><td><a href=#bcm_ptp_acceptable_master_table_enabled_set><tt>bcm_ptp_acceptable_master_table_enabled_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Acceptable Master Table Enabled State
</td></tr><tr><td><a href=#bcm_ptp_acceptable_master_table_list><tt>bcm_ptp_acceptable_master_table_list</tt></a></td>
<td>&nbsp;</td><td>List PTP Acceptable Master Table
</td></tr><tr><td><a href=#bcm_ptp_acceptable_master_table_remove><tt>bcm_ptp_acceptable_master_table_remove</tt></a></td>
<td>&nbsp;</td><td>Remove PTP Clock Acceptable Master Table Entry
</td></tr><tr><td><a href=#bcm_ptp_acceptable_master_table_size_get><tt>bcm_ptp_acceptable_master_table_size_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Acceptable Master Table Size
</td></tr><tr><td><a href=#bcm_ptp_cb_register><tt>bcm_ptp_cb_register</tt></a></td>
<td>&nbsp;</td><td>Register a callback for handling PTP events and messages
</td></tr><tr><td><a href=#bcm_ptp_cb_unregister><tt>bcm_ptp_cb_unregister</tt></a></td>
<td>&nbsp;</td><td>Unregister a callback
</td></tr><tr><td><a href=#bcm_ptp_clock_accuracy_get><tt>bcm_ptp_clock_accuracy_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Accuracy info.
</td></tr><tr><td><a href=#bcm_ptp_clock_accuracy_set><tt>bcm_ptp_clock_accuracy_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Accuracy info.
</td></tr><tr><td><a href=#bcm_ptp_clock_create><tt>bcm_ptp_clock_create</tt></a></td>
<td>&nbsp;</td><td>Create PTP Clock instance.
</td></tr><tr><td><a href=#bcm_ptp_clock_current_dataset_get><tt>bcm_ptp_clock_current_dataset_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock instance current dataset.
</td></tr><tr><td><a href=#bcm_ptp_clock_default_dataset_get><tt>bcm_ptp_clock_default_dataset_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock instance default dataset.
</td></tr><tr><td><a href=#bcm_ptp_clock_domain_get><tt>bcm_ptp_clock_domain_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock domain.
</td></tr><tr><td><a href=#bcm_ptp_clock_domain_set><tt>bcm_ptp_clock_domain_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock domain.
</td></tr><tr><td><a href=#bcm_ptp_clock_get><tt>bcm_ptp_clock_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock instance information.
</td></tr><tr><td><a href=#bcm_ptp_clock_parent_dataset_get><tt>bcm_ptp_clock_parent_dataset_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock instance parent dataset.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_announce_receipt_timeout_get><tt>bcm_ptp_clock_port_announce_receipt_timeout_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Announce Receipt Timeout.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_announce_receipt_timeout_set><tt>bcm_ptp_clock_port_announce_receipt_timeout_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Port Announce Receipt Timeout.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_configure><tt>bcm_ptp_clock_port_configure</tt></a></td>
<td>&nbsp;</td><td>Configure PTP Clock Port information.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_dataset_get><tt>bcm_ptp_clock_port_dataset_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Dataset Information.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_delay_mechanism_get><tt>bcm_ptp_clock_port_delay_mechanism_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Delay Mechanism.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_delay_mechanism_set><tt>bcm_ptp_clock_port_delay_mechanism_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Port Delay Mechanism.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_disable><tt>bcm_ptp_clock_port_disable</tt></a></td>
<td>&nbsp;</td><td>Disable PTP Clock Port.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_enable><tt>bcm_ptp_clock_port_enable</tt></a></td>
<td>&nbsp;</td><td>Enable PTP Clock Port.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_identity_get><tt>bcm_ptp_clock_port_identity_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Identity.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_info_get><tt>bcm_ptp_clock_port_info_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Information.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_latency_set><tt>bcm_ptp_clock_port_latency_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Port Latency.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_announce_interval_get><tt>bcm_ptp_clock_port_log_announce_interval_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Log Announce interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_announce_interval_set><tt>bcm_ptp_clock_port_log_announce_interval_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Port Log Announce Interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_min_delay_req_interval_get><tt>bcm_ptp_clock_port_log_min_delay_req_interval_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Log Min Delay Request Interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_min_delay_req_interval_set><tt>bcm_ptp_clock_port_log_min_delay_req_interval_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Port Log Min Delay Request Interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_min_pdelay_req_interval_get><tt>bcm_ptp_clock_port_log_min_pdelay_req_interval_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Log Min PDelay Request Interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_min_pdelay_req_interval_set><tt>bcm_ptp_clock_port_log_min_pdelay_req_interval_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Port Log Min Peer Delay Request Interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_sync_interval_get><tt>bcm_ptp_clock_port_log_sync_interval_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Log Sync Interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_log_sync_interval_set><tt>bcm_ptp_clock_port_log_sync_interval_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Port Log Sync Interval.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_mac_get><tt>bcm_ptp_clock_port_mac_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port MAC Address.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_protocol_get><tt>bcm_ptp_clock_port_protocol_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Protocol.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_type_get><tt>bcm_ptp_clock_port_type_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Type.
</td></tr><tr><td><a href=#bcm_ptp_clock_port_version_number_get><tt>bcm_ptp_clock_port_version_number_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Port Version Number.
</td></tr><tr><td><a href=#bcm_ptp_clock_priority1_get><tt>bcm_ptp_clock_priority1_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock priority 1.
</td></tr><tr><td><a href=#bcm_ptp_clock_priority1_set><tt>bcm_ptp_clock_priority1_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock priority 1.
</td></tr><tr><td><a href=#bcm_ptp_clock_priority2_get><tt>bcm_ptp_clock_priority2_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock priority 2.
</td></tr><tr><td><a href=#bcm_ptp_clock_priority2_set><tt>bcm_ptp_clock_priority2_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock priority 2.
</td></tr><tr><td><a href=#bcm_ptp_clock_slaveonly_get><tt>bcm_ptp_clock_slaveonly_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock <tt>slave_only</tt>.
</td></tr><tr><td><a href=#bcm_ptp_clock_slaveonly_set><tt>bcm_ptp_clock_slaveonly_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock <tt>slave_only</tt>.
</td></tr><tr><td><a href=#bcm_ptp_clock_time_get><tt>bcm_ptp_clock_time_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Time.
</td></tr><tr><td><a href=#bcm_ptp_clock_time_properties_get><tt>bcm_ptp_clock_time_properties_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock instance time properties.
</td></tr><tr><td><a href=#bcm_ptp_clock_time_set><tt>bcm_ptp_clock_time_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Time.
</td></tr><tr><td><a href=#bcm_ptp_clock_timescale_get><tt>bcm_ptp_clock_timescale_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Timescale info.
</td></tr><tr><td><a href=#bcm_ptp_clock_timescale_set><tt>bcm_ptp_clock_timescale_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Timescale info.
</td></tr><tr><td><a href=#bcm_ptp_clock_traceability_get><tt>bcm_ptp_clock_traceability_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Traceability info.
</td></tr><tr><td><a href=#bcm_ptp_clock_traceability_set><tt>bcm_ptp_clock_traceability_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Traceability info.
</td></tr><tr><td><a href=#bcm_ptp_clock_user_description_set><tt>bcm_ptp_clock_user_description_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock instance user description.
</td></tr><tr><td><a href=#bcm_ptp_clock_utc_get><tt>bcm_ptp_clock_utc_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock UTC info.
</td></tr><tr><td><a href=#bcm_ptp_clock_utc_set><tt>bcm_ptp_clock_utc_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock UTC info.
</td></tr><tr><td><a href=#bcm_ptp_detach><tt>bcm_ptp_detach</tt></a></td>
<td>&nbsp;</td><td>Shut down the PTP subsystem
</td></tr><tr><td><a href=#bcm_ptp_init><tt>bcm_ptp_init</tt></a></td>
<td>&nbsp;</td><td>Initializes the PTP subsystem
</td></tr><tr><td><a href=#bcm_ptp_input_channel_precedence_mode_set><tt>bcm_ptp_input_channel_precedence_mode_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Input Channels Precedence Mode
</td></tr><tr><td><a href=#bcm_ptp_input_channel_switching_mode_set><tt>bcm_ptp_input_channel_switching_mode_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Input Channels Switching Mode
</td></tr><tr><td><a href=#bcm_ptp_input_channels_set><tt>bcm_ptp_input_channels_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Input Channels
</td></tr><tr><td><a href=#bcm_ptp_primary_domain_get><tt>bcm_ptp_primary_domain_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Primary Domain
</td></tr><tr><td><a href=#bcm_ptp_primary_domain_set><tt>bcm_ptp_primary_domain_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Clock Primary Domain
</td></tr><tr><td><a href=#bcm_ptp_signal_output_get><tt>bcm_ptp_signal_output_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Signal Output
</td></tr><tr><td><a href=#bcm_ptp_signal_output_remove><tt>bcm_ptp_signal_output_remove</tt></a></td>
<td>&nbsp;</td><td>Remove PTP Signal Output
</td></tr><tr><td><a href=#bcm_ptp_signal_output_set><tt>bcm_ptp_signal_output_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP Signal Output
</td></tr><tr><td><a href=#bcm_ptp_stack_create><tt>bcm_ptp_stack_create</tt></a></td>
<td>&nbsp;</td><td>Create a PTP stack instance
</td></tr><tr><td><a href=#bcm_ptp_time_format_set><tt>bcm_ptp_time_format_set</tt></a></td>
<td>&nbsp;</td><td>Set Time Of Day format for PTP stack instance.
</td></tr><tr><td><a href=#bcm_ptp_timesource_input_status_get><tt>bcm_ptp_timesource_input_status_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Input Timesource Status
</td></tr><tr><td><a href=#bcm_ptp_tod_input_sources_set><tt>bcm_ptp_tod_input_sources_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP TOD Input Sources
</td></tr><tr><td><a href=#bcm_ptp_tod_output_get><tt>bcm_ptp_tod_output_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP TOD Output
</td></tr><tr><td><a href=#bcm_ptp_tod_output_remove><tt>bcm_ptp_tod_output_remove</tt></a></td>
<td>&nbsp;</td><td>Remove PTP TOD Output
</td></tr><tr><td><a href=#bcm_ptp_tod_output_set><tt>bcm_ptp_tod_output_set</tt></a></td>
<td>&nbsp;</td><td>Set PTP TOD Output
</td></tr><tr><td><a href=#bcm_ptp_transparent_clock_default_dataset_get><tt>bcm_ptp_transparent_clock_default_dataset_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Transparent Clock Default Dataset
</td></tr><tr><td><a href=#bcm_ptp_transparent_clock_port_dataset_get><tt>bcm_ptp_transparent_clock_port_dataset_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Transparent Clock Port Dataset
</td></tr><tr><td><a href=#bcm_ptp_unicast_master_table_add><tt>bcm_ptp_unicast_master_table_add</tt></a></td>
<td>&nbsp;</td><td>Add PTP Clock Unicast Master Table Entry
</td></tr><tr><td><a href=#bcm_ptp_unicast_master_table_clear><tt>bcm_ptp_unicast_master_table_clear</tt></a></td>
<td>&nbsp;</td><td>Clear PTP Clock Unicast Master Table
</td></tr><tr><td><a href=#bcm_ptp_unicast_master_table_list><tt>bcm_ptp_unicast_master_table_list</tt></a></td>
<td>&nbsp;</td><td>List PTP Unicast Master Table
</td></tr><tr><td><a href=#bcm_ptp_unicast_master_table_remove><tt>bcm_ptp_unicast_master_table_remove</tt></a></td>
<td>&nbsp;</td><td>Remove PTP Clock Unicast Master Table Entry
</td></tr><tr><td><a href=#bcm_ptp_unicast_master_table_size_get><tt>bcm_ptp_unicast_master_table_size_get</tt></a></td>
<td>&nbsp;</td><td>Get PTP Clock Unicast Master Table Size
</td></tr><tr><td><a href=#bcm_ptp_unicast_slave_add><tt>bcm_ptp_unicast_slave_add</tt></a></td>
<td>&nbsp;</td><td>Add PTP Clock Unicast Slave
</td></tr><tr><td><a href=#bcm_ptp_unicast_slave_clear><tt>bcm_ptp_unicast_slave_clear</tt></a></td>
<td>&nbsp;</td><td>Clear All PTP Clock Unicast Slaves
</td></tr><tr><td><a href=#bcm_ptp_unicast_slave_list><tt>bcm_ptp_unicast_slave_list</tt></a></td>
<td>&nbsp;</td><td>List PTP Clock Unicast Slaves
</td></tr><tr><td><a href=#bcm_ptp_unicast_slave_remove><tt>bcm_ptp_unicast_slave_remove</tt></a></td>
<td>&nbsp;</td><td>Remove PTP Clock Unicast Slave
</td></tr><tr><td><a href=#bcm_regex_config_set><tt>bcm_regex_config_set</tt></a></td>
<td>&nbsp;</td><td>Set or Return the Regex configuration.
</td></tr><tr><td><a href=#bcm_regex_engine_create><tt>bcm_regex_engine_create</tt></a></td>
<td>&nbsp;</td><td>Create a regex matching engine.
</td></tr><tr><td><a href=#bcm_regex_engine_destroy><tt>bcm_regex_engine_destroy</tt></a></td>
<td>&nbsp;</td><td>Create a regex matching engine.
</td></tr><tr><td><a href=#bcm_regex_engine_get><tt>bcm_regex_engine_get</tt></a></td>
<td>&nbsp;</td><td>Retrieve the information corresponding to the regex engine
</td></tr><tr><td><a href=#bcm_regex_engine_traverse><tt>bcm_regex_engine_traverse</tt></a></td>
<td>&nbsp;</td><td>Traverse all the regex engines for the specified unit.
</td></tr><tr><td><a href=#bcm_regex_exclude_add><tt>bcm_regex_exclude_add</tt></a></td>
<td>&nbsp;</td><td>Exclude a range of L4 ports from packet inspection.
</td></tr><tr><td><a href=#bcm_regex_exclude_delete><tt>bcm_regex_exclude_delete</tt></a></td>
<td>&nbsp;</td><td>Delete a range of L4 ports excluded from packet inspection.
</td></tr><tr><td><a href=#bcm_regex_exclude_delete_all><tt>bcm_regex_exclude_delete_all</tt></a></td>
<td>&nbsp;</td><td>Delete all the L4 port ranges that are excluded from packet inspection.
</td></tr><tr><td><a href=#bcm_regex_exclude_get><tt>bcm_regex_exclude_get</tt></a></td>
<td>&nbsp;</td><td>Return the L4 port ranges excluded from packet inspection
</td></tr><tr><td><a href=#bcm_regex_match_check><tt>bcm_regex_match_check</tt></a></td>
<td>&nbsp;</td><td>Compute the DFA state size for the specified group of match objects. 
</td></tr><tr><td><a href=#bcm_regex_match_set><tt>bcm_regex_match_set</tt></a></td>
<td>&nbsp;</td><td>Compute the DFA state size for the specified group of match objects. 
</td></tr><tr><td><a href=#bcm_regex_report_register><tt>bcm_regex_report_register</tt></a></td>
<td>&nbsp;</td><td>Register user provided application callback function for Regex event notification.
</td></tr><tr><td><a href=#bcm_regex_report_unregister><tt>bcm_regex_report_unregister</tt></a></td>
<td>&nbsp;</td><td>Unregister user provided application callback function for Regex event notification.
</td></tr><tr><td><a href=#bcm_stat_group_create><tt>bcm_stat_group_create</tt></a></td>
<td>&nbsp;</td><td>Create Counter Entries group for given accounting object
</td></tr><tr><td><a href=#bcm_stat_group_destroy><tt>bcm_stat_group_destroy</tt></a></td>
<td>&nbsp;</td><td>Destroy counter Entries group
</td></tr><tr><td><a href=#bcm_stat_group_dump><tt>bcm_stat_group_dump</tt></a></td>
<td>&nbsp;</td><td>Dump contents of specified group
</td></tr><tr><td><a href=#bcm_stat_group_dump_all><tt>bcm_stat_group_dump_all</tt></a></td>
<td>&nbsp;</td><td>Dump contents of all configured groups
</td></tr><tr><td><a href=#bcm_time_trigger_enable_get><tt>bcm_time_trigger_enable_get</tt></a></td>
<td>&nbsp;</td><td>Get External time capture modes
</td></tr><tr><td><a href=#bcm_time_trigger_enable_set><tt>bcm_time_trigger_enable_set</tt></a></td>
<td>&nbsp;</td><td>Set External time capture modes
</td></tr><tr><td><a href=#bcm_txbeacon_destroy><tt>bcm_txbeacon_destroy</tt></a></td>
<td>&nbsp;</td><td>Remove this packet from the txbeacon list
</td></tr><tr><td><a href=#bcm_txbeacon_init><tt>bcm_txbeacon_init</tt></a></td>
<td>&nbsp;</td><td>Init routine for TX beacon
</td></tr><tr><td><a href=#bcm_txbeacon_pkt_get><tt>bcm_txbeacon_pkt_get</tt></a></td>
<td>&nbsp;</td><td>Lookup packet beacon info structure
</td></tr><tr><td><a href=#bcm_txbeacon_pkt_setup><tt>bcm_txbeacon_pkt_setup</tt></a></td>
<td>&nbsp;</td><td>Add a packet for TX beacon
</td></tr><tr><td><a href=#bcm_txbeacon_start><tt>bcm_txbeacon_start</tt></a></td>
<td>&nbsp;</td><td>Start beacon for this packet or all
</td></tr><tr><td><a href=#bcm_txbeacon_stop><tt>bcm_txbeacon_stop</tt></a></td>
<td>&nbsp;</td><td>Start beacon for this packet or all
</td></tr><tr><td><a href=#bcm_txbeacon_traverse><tt>bcm_txbeacon_traverse</tt></a></td>
<td>&nbsp;</td><td>Traverse the tx beacon packets
</td></tr><tr><td><a href=#bcm_vlan_stat_attach><tt>bcm_vlan_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach   counter entries to the given vlan.
</td></tr><tr><td><a href=#bcm_vlan_stat_counter_get><tt>bcm_vlan_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get the specified statistic to the indicated value for the specified VLAN.
</td></tr><tr><td><a href=#bcm_vlan_stat_counter_set><tt>bcm_vlan_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set the specified statistic to the indicated value for the specified VLAN.
</td></tr><tr><td><a href=#bcm_vlan_stat_detach><tt>bcm_vlan_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach   counter entries to the given vlan.
</td></tr><tr><td><a href=#bcm_vlan_stat_id_get><tt>bcm_vlan_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given vlan.
</td></tr><tr><td><a href=#bcm_vlan_translate_egress_stat_attach><tt>bcm_vlan_translate_egress_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach counters for the given egress vlan translation table.
</td></tr><tr><td><a href=#bcm_vlan_translate_egress_stat_counter_get><tt>bcm_vlan_translate_egress_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get counter values from egress vlan translation table
</td></tr><tr><td><a href=#bcm_vlan_translate_egress_stat_counter_set><tt>bcm_vlan_translate_egress_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set counter values from egress vlan translation table 
</td></tr><tr><td><a href=#bcm_vlan_translate_egress_stat_detach><tt>bcm_vlan_translate_egress_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach counters for the given egress vlan translation table.
</td></tr><tr><td><a href=#bcm_vlan_translate_egress_stat_id_get><tt>bcm_vlan_translate_egress_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given engress vlan translation table.
</td></tr><tr><td><a href=#bcm_vlan_translate_stat_attach><tt>bcm_vlan_translate_stat_attach</tt></a></td>
<td>&nbsp;</td><td>Attach   counters entries for the given ingress vlan translation table.
</td></tr><tr><td><a href=#bcm_vlan_translate_stat_counter_get><tt>bcm_vlan_translate_stat_counter_get</tt></a></td>
<td>&nbsp;</td><td>Get   counter values from ingress vlan translation table 
</td></tr><tr><td><a href=#bcm_vlan_translate_stat_counter_set><tt>bcm_vlan_translate_stat_counter_set</tt></a></td>
<td>&nbsp;</td><td>Set counter values into a ingress vlan translation table 
</td></tr><tr><td><a href=#bcm_vlan_translate_stat_detach><tt>bcm_vlan_translate_stat_detach</tt></a></td>
<td>&nbsp;</td><td>Detach   counters entries for the given ingress vlan translation table.
</td></tr><tr><td><a href=#bcm_vlan_translate_stat_id_get><tt>bcm_vlan_translate_stat_id_get</tt></a></td>
<td>&nbsp;</td><td>Get stat counter id associated with given ingress vlan translation table.
</td></tr></table>
<br><br><hr noshade><br><br>
    <a name=section_about>
    <h3>Section 1:  About This Document
</h3>
<p>These are the Release Notes for the Broadcom Network Switching
Software Development Kit, Release 5.10.0
<p>This document provides a general description of the release and its new features. It also describes the chips supported by the release, BCM/BCMX API additions or changes, resolved issues, and any relevant open issues.  
<br><br><hr noshade><br><br>
    <a name=section_docs>
    <h3>Section 2:  Product Documentation
</h3>
<p>The following documents are available through Broadcom's
Customer Support Portal, http://support.broadcom.com. They are
the primary source of information and should be referenced 
when using this release:
<p><h3>Table 1:   Product Documentation
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Document</b></td><td><b> Description
</b></td></tr><tr><td>  56XX-PG624-R</td><td> BCM and BCMX API Reference Guide.
<p>This manual describes the theory of operations of the API and all existing BCM 
and BCMX APIs for this release. 
</td></tr><tr><td>  [**56XX-PG704-R]</td><td> Stacking Software Guide
<p>This guide describes how to use the discovery and stacking applications 
provided in this release. 
</td></tr><tr><td>  56XX-PG812-R</td><td> Platform Guide
<p>This guide describes the SDK source and Makefile structure, abstraction and 
porting layers, device specific interactions, and the platform/operating
system specific features of the SDK. If this is your first time
working with the SDK, start with this document. 
</td></tr></tbody></table><br><br><hr noshade><br><br>
    <a name=section_media>
    <h3>Section 3:  Release Media
</h3>
<p>The Software Development Kit is released as a gzipped tar file on the Broadcom Customer Support Portal, http://support.broadcom.com. The Network Switching Software Platform Guide, also available on the Customer Support Portal, provides documentation on the various components, the source directory layout, how to build the release for various platforms, and how to customize and port the
software to new platforms. 
<br><br><hr noshade><br><br>
    <a name=section_support>
    <h3>Section 4:  Support
</h3>
<p>Questions, feedback, and/or suggestions should be sent to your Broadcom FAE.
<br><br><hr noshade><br><br>
    <a name=section_new>
    <h3>Section 5:  New in this Release
</h3>
<p>This section describes feature and device support that is introduced in this release. 
<br><hr noshade><a name="Watch-out-for-this"></a>
<h3>Section 5.1:   Things to note
</h3>
<p>This section lists items that require special attention. 
<br><hr noshade><a name="issue1"></a>
<h3>Section 5.1.1:   Warmboot support for BCM5644x devices
</h3>
<p>Warmboot for 5644x devices is not tested in the 5.10.0GA release.
<p><br><hr noshade><a name="cmicm"></a>
<h3>Section 5.1.2:   BCM56440 BFD, CES, IEEE-1588 preview
</h3>
<p>Support for BFD, CES and IEEE-1588 APIs is provided as "preview only" in
this release. The API definition and implementation are complete.
Validation of these features has not been finished in this release.
<p><br><hr noshade><a name="sirius_mixedFC"></a>
<h3>Section 5.1.3:   No support for mixed 1-bit and 2-bit flow control in BCM88130/BCM88230 systems
</h3>
<p>All devices in a system have to run
in either 1-bit flow control mode or in 2-bit flow control mode.
Mixed 1-bit and 2-bit flow control is not supported in systems built
on BCM88130 and BCM88230 devices. 
<p><br><hr noshade><a name="polaris_SingleGrant"></a>
<h3>Section 5.1.4:   No support for single grant mode in BCM88130/BCM88230 systems
</h3>
<p>This release supports BCM88130 and BCM88230 systems operating in
dual grant mode. Single grant mode is not supported.
<p><br><hr noshade><a name="Caladan_kernel"></a>
<h3>Section 5.1.5:   No support for BCM88020 family of devices in Linux Kernel mode
</h3>
<p>BCM88020 and BCM88025 devices are not supported
in Linux Kernel mode in this release.  Only Linux User and VxWorks
are supported for these devices.
<p><p><br><hr noshade><a name="new-hardware"></a>
<h3>Section 5.2:   New Devices and Systems
</h3>
<p>For any given SDK release, support for certain devices may be provided in Preview or Supported status. Devices in preview status are provided to allow early integration of the customer's application with the SDK APIs that support that device. This software has not been tested on the physical target device and should not be expected to fully function. 
<p>Devices in supported status have completed the full QA process and are intended for use in production systems. It is expected that customers integrate the version of the SDK that provides supported status for their use on actual development or production systems. 
<p>Devices in "Supported" status have completed the full QA process and are intended for use in production systems.  It is expected that customers would integrate the version of the SDK which provides "Supported" status for their use on actual development or production systems.

<a name=ssd></a>
<h3>Table 2:   Supported Switch Devices
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Family</b></td><td><b>  Devices</b></td><td><b> Description
</b></td></tr><tr><td> BCM53600
</td><td> BCM53602 A0
</td><td> 8-Port Fast Ethernet + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td></td><td> BCM53603 A0
</td><td> 16-Port Fast Ethernet + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td></td><td> BCM53604 A0
</td><td> 24-Port Fast Ethernet + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td></td><td> BCM53606 A0
</td><td> 24-Port FE with S3MII interface + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td> BCM56440
</td><td> BCM56440 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/Hig2 Uplink ports
</td></tr><tr><td></td><td> BCM56441 A0
</td><td> 8-Port GbE Multilayer Switch with Two 10-GbE/Hig2 Uplink ports
</td></tr><tr><td></td><td> BCM56442 A0
</td><td> 16-Port GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56443 A0
</td><td> 8-Port 2.5GbE Multilayer Switch with Two 10-GbE/Hig2 Uplink ports
</td></tr><tr><td></td><td> BCM56445 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/Hig2 Uplink ports pin compatible with BCM56334
</td></tr><tr><td></td><td> BCM56446 A0
</td><td> 8-Port GbE Multilayer Switch with Two 10-GbE/Hig2 Uplink ports pin compatibe with BCM56338
</td></tr><tr><td></td><td> BCM56447 A0
</td><td> 16-Port GbE Multilayer Switch pin compatible with BCM56333
</td></tr><tr><td></td><td> BCM56448 A0
</td><td> 24-Port GbE Multilayer Switch with Four 1GbE/ One 2.5G Uplink ports
</td></tr></tbody></table>
<a name=psd></a>
<h3>Table 3:   Pre-Silicon Preview Switch Devices
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Family</b></td><td><b>  Devices</b></td><td><b> Description
</b></td></tr></tbody></table>
<a name=newphys></a>
<h3>Table 4:   PHYs
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Device</b></td><td><b>  Driver Family</b></td><td><b>  Support Status</b></td><td><b> Description
</b></td></tr><tr><td> <tt>BCM84833_B0</tt>
</td><td> 8481
</td><td> Preview
</td><td> Dual 10GBASE-T Transceiver. Firmware version 1.17 (Preview)
</td></tr></tbody></table>
<a name=rd></a>
<h3>Table 5:   Reference Designs
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b>  Support Status</b></td><td><b> Description
</b></td></tr><tr><td> BCM953604R
</td><td> Supported
</td><td> 24-port FE + 1-port 1/2G EPON ONU MAC/SerDes Reference Design
</td></tr></tbody></table><h3>Table 6:   CPU and Operating System Combinations
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  CPU Subsystem</b></td><td><b>  Operating System</b></td><td><b> Description
</b></td></tr><tr><td> BCM5360X
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM5360X
</td><td> VxWorks 6.6
</td><td> BSP Provided
</td></tr><tr><td> BCM5360X
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0
</td></tr><tr><td> BCM5360X
</td><td> Linux 2.6.27
</td><td> Available through WindRiver Linux 3.x
</td></tr></tbody></table><p><br><hr noshade><a name="api-changes"></a>
<h3>Section 5.3:   Summary of BCM and BCMX API changes
</h3>
<p>This section summarizes BCM and BCMX API changes in this release.
Complete documentation is available in the Network Switching Software
Programmer's Guide [**56XX-PG609-R].  (See section 2 earlier 
in this document for availability). 
<p>Unless otherwise mentioned, any newly defined or changed BCM API
will have equivalent changes in the BCMX APIs.
<br><hr noshade><a name="bfd"></a>
<h3>Section 5.3.1:   Bidirectional Forwarding Detection
</h3>
<p>For devices which support them, the BFD APIs provide methods for the control
and configuration of BFD sessions.  The following BFD features are supported 
and configurable per session:
<ul><li> Active or Passive Mode initialization
</li><li> Asynchronous or Demand Mode operation
</li><li> Authentication (Simple Password, SHA1, or none)
</li></ul>Callback mechanisms are provided for notifying the application of
BFD-related events, such as change of session state.
<p>BFD Data Types
<ul><li> <tt>bcm_bfd_tunnel_type_t</tt> is an enumeration of BFD encapsulations.
</li><li> <tt>bcm_bfd_endpoint_t</tt> is an identifier used to refer to a BFD endpoint.
</li><li> <tt>bcm_bfd_endpoint_info_t</tt> is a structure containing information about
the local and remote endpoints of a BFD session.
</li><li> <tt>bcm_bfd_auth_simple_password_t</tt> is a structure containing information
about a simple password authentication entry
</li><li> <tt>bcm_bfd_auth_sha1_t</tt> is a structure containing information about a
SHA1 authentication entry.
</li><li> <tt>bcm_bfd_counts_t</tt> is a structure containing counter information for a
BFD endpoint.
</li><li> <tt>bcm_bfd_state_t</tt> is an enumeration of the states found in BFD control packets.
</li><li> <tt>bcm_bfd_diag_code_t</tt> is an enumeration of the diagnostic codes found in BFD control packets.
</li><li> <tt>bcm_bfd_auth_t</tt> is an enumeration of BFD authentication types.
</li></ul>The following type is used for supplying function pointers to callbacks for
event handling.
<blockquote><pre>typedef int (*<tt>bcm_bfd_event_cb</tt>)(
    int unit,
    uint32 flags,
    <tt>bcm_bfd_events_type_t</tt> events,
    <tt>bcm_bfd_endpoint_t</tt> endpoint,
    void *<tt>user_data</tt>);
</pre></blockquote><p>BFD Endpoint Info
<p>The BFD endpoint info structure contains information on both the local and remote ends of the BFD session.
<blockquote><pre>typedef struct <tt>bcm_bfd_endpoint_info_s</tt> {
    uint32 flags;                       /* control flags */
    <tt>bcm_bfd_endpoint_t</tt> id;              /* endpoint identifier */
    <tt>bcm_bfd_tunnel_type_t</tt> type;         /* type of BFD encapsulation */
    <tt>bcm_gport_t</tt> gport;                  /* gport identifier */
    <tt>bcm_vpn_t</tt> vpn;                      /* VPN */
    uint8 <tt>vlan_pri</tt>;                     /* VLAN tag priority */
    uint8 <tt>inner_vlan_pri</tt>;               /* inner VLAN tag priority */
    <tt>bcm_vrf_t</tt> <tt>vrf_id</tt>;                   /* vrf identifier */
    <tt>bcm_ip_t</tt> <tt>dst_ip_addr</tt>;               /* destination IPv4 address */
    <tt>bcm_ip6_t</tt> <tt>dst_ip6_addr</tt>;             /* destination IPv6 address */
    <tt>bcm_ip_t</tt> <tt>src_ip_addr</tt>;               /* source IPv4 address */
    <tt>bcm_ip6_t</tt> <tt>src_ip6_addr</tt>;             /* source IPv6 address */
    uint8 <tt>ip_tos</tt>;                       /* IPv4 Tos / IPv6 Traffic Class */
    uint8 <tt>ip_ttl</tt>;                       /* IPv4 TTL / IPv6 Hop Count */
    <tt>bcm_ip_t</tt> <tt>inner_dst_ip_addr</tt>;         /* inner destination IPv4 address */
    <tt>bcm_ip6_t</tt> <tt>inner_dst_ip6_addr</tt>;       /* inner destination IPv6 address */
    <tt>bcm_ip_t</tt> <tt>inner_src_ip_addr</tt>;         /* inner source IPv4 address */
    <tt>bcm_ip6_t</tt> <tt>inner_src_ip6_addr</tt>;       /* inner source IPv6 address */
    uint8 <tt>inner_ip_tos</tt>;                 /* inner IPv4 Tos / IPv6 Traffic Class */
    uint8 <tt>inner_ip_ttl</tt>;                 /* inner IPv4 TTL / IPv6 Hop Count */
    uint32 <tt>udp_src_port</tt>;                /* UDP source port for Ipv4, Ipv6 */
    <tt>bcm_mpls_label_t</tt> label;             /* incoming inner label */
    <tt>bcm_if_t</tt> <tt>egress_if</tt>;                 /* egress interface */
    uint8 <tt>mep_id</tt>[<tt>BCM_BFD_ENDPOINT_MAX_MEP_ID_LENGTH</tt>]; /* MPLS-TP CC/CV TLV and Source MEP ID */
    uint8 <tt>mep_id_length</tt>;                /* length of MPLS-TP CC/CV TLV and
                                           MEP-ID */
    <tt>bcm_cos_t</tt> <tt>int_pri</tt>;                  /* egress queuing for outgoing BFD to
                                           remote */
    uint8 <tt>cpu_qid</tt>;                      /* CPU queue for BFD */

    /* BFD Protocol Parameters */
    <tt>bcm_bfd_state_t</tt> <tt>local_state</tt>;        /* local session state */
    uint32 <tt>local_discr</tt>;                 /* local discriminator */
    <tt>bcm_bfd_diag_code_t</tt> <tt>local_diag</tt>;     /* local diagnostic code */
    uint32 <tt>local_min_tx</tt>;                /* desired local min tx interval */
    uint32 <tt>local_min_rx</tt>;                /*  required local rx interval */
    uint32 <tt>local_min_echo</tt>;              /* local minimum echo interval */
    uint8 <tt>local_detect_mult</tt>;            /* local detection interval multiplier */
    <tt>bcm_bfd_auth_type_t</tt>  auth;          /* authentication type */
    uint32 <tt>auth_index</tt>;                  /* authentication index */
    uint32 <tt>tx_auth_seq</tt>;                 /*  tx authentication sequence id */
    uint32 <tt>rx_auth_seq</tt>;                 /* rx authentication sequence id */
    uint32 <tt>remote_flags</tt>;                /* remote flags */
    <tt>bcm_bfd_state_t</tt> <tt>remote_state</tt>;       /* remote session state */
    uint32 <tt>remote_discr</tt>;                /* remote discriminator */
    <tt>bcm_bfd_diag_code_t</tt> <tt>remote_diag</tt>;    /* remote diagnostic code */
    uint32 <tt>remote_min_tx</tt>;               /* desired remote min tx interval */
    uint32 <tt>remote_min_rx</tt>;               /*  required remote rx interval */
    uint32 <tt>remote_min_echo</tt>;             /* remote minimum echo interval */
    uint8 <tt>remote_detect_mult</tt>;           /* remote detection interval multiplier */
} <tt>bcm_bfd_endpoint_info_t</tt>;
</pre></blockquote>The <tt>bcm_bfd_tunnel_type_t</tt> value in the BFD endpoint information structure defines the encapsulation type for the session.  The following encapsulations are supported:
<h3>Table 7:   BFD Tunnel Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>bcm_bfd_tunnel_type_t</tt></b></td><td><b> Description
</b></td></tr><tr><td>  bcmBFDTunnelTypeUdp</td><td> IPv4/UDP or IPv6/UDP (single or multi-hop)
</td></tr><tr><td>  bcmBFDTunnelTypeIp4in4</td><td> IPv4-in-IPv4
</td></tr><tr><td>  bcmBFDTunnelTypeIp6in4</td><td> IPv6-in-IPv4
</td></tr><tr><td>  bcmBFDTunnelTypeIp4in6</td><td> IPv4-in-IPv6
</td></tr><tr><td>  bcmBFDTunnelTypeIp6in6</td><td> IPv6-in-IPv6
</td></tr><tr><td>  bcmBFDTunnelTypeGRE</td><td> IPv4/GRE or IPv6/GRE
</td></tr><tr><td>  bcmBFDTunnelTypeMpls</td><td> MPLS/IP/UDP
</td></tr><tr><td>  bcmBFDTunnelTypePweControlWord</td><td> MPLS PWE with MPLS control word
</td></tr><tr><td>  bcmBFDTunnelTypePweRouterAlert</td><td> MPLS PWE with Router Alert label
</td></tr><tr><td>  bcmBFDTunnelTypePweTtl</td><td> MPLS PWE with bottom label TTL=1
</td></tr><tr><td>  bcmBFDTunnelTypeMplsTpCc</td><td> MPLS-TP proactive Continuity Check
</td></tr><tr><td>  bcmBFDTunnelTypeMplsTpCcCv</td><td> MPLS-TP proactive Continuity Check &amp; Verification
</td></tr></tbody></table><h3>Table 8:   BFD Endpoint Info Structure Flag Definitions
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_UPDATE</tt></td><td> Update an existing BFD endpoint.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_WITH_ID</tt></td><td> Use specified endpoint ID when creating new endpoint.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_PASSIVE</tt></td><td> Set BFD endpoint into passive mode.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_DEMAND</tt></td><td> Set Local BFD endpoint into Demand Mode.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_ENCAP_SET</tt></td><td> Update encapsulation on existing endpoint.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_PWE_RAW</tt></td><td> Set PWE endpoint in Raw mode (no IP/UDP). Valid for PWE Tunnel types only.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_PWE_ACH</tt></td><td> Force use MPLS Associated Channel Header when optional. Valid for PWE Tunnel Types only.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_IPV6</tt></td><td> Use IPv6 header type (default is IPv4).
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_MULTIHOP</tt></td><td> Use UDP multihop destination port (4784). Valid only for IP encapsulations.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_MPLS_TP_AIS_LDI</tt></td><td> Assert MPLS-TP AIS LDI on existing endpoint. Valid for MPLS-TP Tunnels types only.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_MPLS_TP_LKR</tt></td><td> Assert MPLS-TP Locked Report on existing endpoint. Valid for MPLS-TP Tunnel types only.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_MPLS_TP_USE_LABEL_SESSION</tt></td><td> Resolve BFD session from MPLS label (instead of local discriminator). Valid for MPLS-TP Tunnel types only.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_MPLS_IP_DEST_RANDOM</tt></td><td> Set outgoing IP dest as random address. Valid for MPLS/PWE Tunnel types only. For IPv4 address is in 127/8 range. For IP address is in 0:0:0:0:0:FFFF:127.0.0.0/104 range.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_MPLS_TP_POLL_SEQUENCE_ENABLE</tt></td><td> Enable poll sequence. Valid only for MPLS-TP Tunnel types.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_SHA1_SEQUENCE_INCR</tt></td><td> Increment SHA1 sequence number.
</td></tr></tbody></table><h3>Table 9:   BFD Endpoint Info Structure Remote Flag Definitions
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_STATUS_REMOTE_DEMAND</tt></td><td> BFD Remote Endpoint is in Demand Mode.
</td></tr><tr><td>  <tt>BCM_BFD_ENDPOINT_STATUS_RX_AUTH_SEQ_KNOWN</tt></td><td> Receive authentication sequence ID is valid. For SHA1 authentication only.
</td></tr></tbody></table><h3>Table 10:   BFD Endpoint Info Structure BFD State Definitions
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  State</b></td><td><b> Description
</b></td></tr><tr><td>  bcmBFDStateAdminDown</td><td> BFD Session is in forced down state by administrator.
</td></tr><tr><td>  bcmBFDStateDown</td><td> BFD Session is in state Down.
</td></tr><tr><td>  bcmBFDStateInit</td><td> BFD Session is in Init State.
</td></tr><tr><td>  bcmBFDStateUp</td><td> BFD Session is Up.
</td></tr></tbody></table><h3>Table 11:   BFD Endpoint Info Structure BFD Diagnostic Codes
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Diagnostic Code</b></td><td><b> Description
</b></td></tr><tr><td>  bcmBFDDiagCodeNode</td><td> No error
</td></tr><tr><td>  bcmBFDDiagCodeCtrlDetectTimeExpired</td><td> Control Detection Timer expired
</td></tr><tr><td>  bcmBFDDiagCodeEchoFailed</td><td> Echo Function Failed
</td></tr><tr><td>  bcmBFDDiagCodeNeighborSignalledDown</td><td> Neighbor Signalled Session Down
</td></tr><tr><td>  bcmBFDDiagCodeForwardingPlaneReset</td><td> Forwarding plane has been reset
</td></tr><tr><td>  bcmBFDDiagCodePathDown</td><td> Path Down
</td></tr><tr><td>  bcmBFDDiagCodeConcatPathDown</td><td> Concatenated Path Down
</td></tr><tr><td>  bcmBFDDiagCodeAdminDown</td><td> Administratively Down
</td></tr><tr><td>  bcmBFDDiagCodeRevConcatPathDown</td><td> Reverse Concatenated Path Down
</td></tr></tbody></table><h3>Table 12:   BFD Endpoint Info Structure BFD Authentication Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Type</b></td><td><b> Description
</b></td></tr><tr><td>  bcmBFDAuthTypeNone</td><td> Use no authentication
</td></tr><tr><td>  bcmBFDAuthTypeSimplePassword</td><td> Use Simple Password authentication
</td></tr><tr><td>  bcmBFDAuthTypeKeyedMD5</td><td> Use Keyed MD5 authentication
</td></tr><tr><td>  bcmBFDAuthTypeMeticulousKeyedMD5</td><td> Use Meticulously Keyed MD5 authentication
</td></tr><tr><td>  bcmBFDAuthTypeKeyedSHA1</td><td> Use Keyed SHA1 authentication
</td></tr><tr><td>  bcmBFDAuthTypeMeticulousKeyedSHA1</td><td> Use Meticulously Keyed SHA1 authentication
</td></tr></tbody></table><p>The BFD Statistics structure is used for retrieving counters for a BFD session.
<blockquote><pre>typedef struct <tt>bcm_bfd_endpoint_stat_s</tt> {
    uint32 <tt>packets_in</tt>;
    uint32 <tt>packets_out</tt>;
    uint32 <tt>packets_drop</tt>;
    uint32 <tt>packets_auth_drop</tt>;
} <tt>bcm_bfd_endpoint_stat_t</tt>;
</pre></blockquote><p>The following table lists the BFD Session changes which are reported via callback functions.
<h3>Table 13:   BFD Event Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Event type</b></td><td><b> Description
</b></td></tr><tr><td>  bcmBFDEventStateChange</td><td> BFD Session has changed state.
</td></tr><tr><td>  bcmBFDEventRemoteStateDiag</td><td> Remote endpoint has changed BFD State or Diagnostic Code.
</td></tr><tr><td>  bcmBFDEventSessionDiscriminatorChange</td><td> BFD remote endpoint has changed discriminator value.
</td></tr><tr><td>  bcmBFDEventAuthenticationChange</td><td> BFD remote endpoint has changed authentication information.
</td></tr><tr><td>  bcmBFDEventParameterChange</td><td> Remote BFD Endpoint changed other BFD parameter.
</td></tr><tr><td>  bcmBFDEventSessionError</td><td> BFD Session received errored packet.
</td></tr></tbody></table><h3>Table 14:   BFD Event Collection Macros
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Macro</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_BFD_EVENT_TYPE_SET</tt>(<tt>_event_types</tt>, <tt>_event_type</tt>)</td><td> Set the specified event type in the collection
</td></tr><tr><td>  <tt>BCM_BFD_EVENT_TYPE_GET</tt>(<tt>_event_types</tt>, <tt>_event_type</tt>)</td><td> Get the status of the specified event type in the collection
</td></tr><tr><td>  <tt>BCM_BFD_EVENT_TYPE_CLEAR</tt>(<tt>_event_types</tt>, <tt>_event_type</tt>)</td><td> Clear the specified event type in the collection
</td></tr><tr><td>  <tt>BCM_BFD_EVENT_TYPE_SET_ALL</tt>(<tt>_event_types</tt>)</td><td> Set all event types in the collection
</td></tr><tr><td>  <tt>BCM_BFD_EVENT_TYPE_CLEAR_ALL</tt>(<tt>_event_types</tt>)</td><td> Clear all event types in the collection
</td></tr></tbody></table><p><br><hr noshade><a name="ces"></a>
<h3>Section 5.3.2:   Circuit Emulation Services
</h3>
<p>For devices that support CES, the CES APIs provide methods for the control
and configuration of CES channels.
<p>CES Data Types
<ul><li> <tt>bcm_ces_proto_eth_t</tt> - A structure containing information for the Ethernet protocol.
</li><li> <tt>bcm_ces_proto_vlan_t</tt> - A structure containing information for the VLAN protocol.
</li><li> <tt>bcm_ces_proto_ipv4_t</tt> - A structure containing information for the IPv4 protocol.
</li><li> <tt>bcm_ces_proto_ipv6_t</tt> - A structure containing information for the IPv6 protocol.
</li><li> <tt>bcm_ces_proto_mpls_t</tt> - A structure containing information for the MPLS protocol.
</li><li> <tt>bcm_ces_proto_udp_t</tt> - A structure containing information for the UDP protocol.
</li><li> <tt>bcm_ces_proto_l2tpv3_t</tt> - A structure containing information for the L2TPv3 protocol.
</li><li> <tt>bcm_ces_packet_header_t</tt> - A structure containing information about the
packet header used on CES packets.
</li><li> <tt>bcm_ces_circuit_config_t</tt> - A structure containing information about a TDM circuit.
</li><li> <tt>bcm_ces_ingress_channel_config_t</tt> - A structure containing information for the CES ingress channel.
</li><li> <tt>bcm_ces_egress_channel_config_t</tt> - A structure containing information for the CES egress channel.
</li><li> <tt>bcm_ces_channel_map_t</tt> - A structure containing information for channel maps, either ingress or egress.
</li><li> <tt>bcm_ces_service_config_t</tt> - A structure containing information for the provisioning or modification of CES service.
</li><li> <tt>bcm_ces_service_pm_stats_t</tt> - A structure containing information on CES service performance monitoring stats.
</li><li> <tt>bcm_ces_service_egress_status_t</tt> - A structure containing information on CES service egress status.
</li><li> <tt>bcm_ces_cclk_config_t</tt> - A structure containing information on the common clock configuration.
</li><li> <tt>bcm_ces_rclock_config_t</tt> - A structure containing information on the differential clock configuration.
</li></ul><p>Packet Header
<p>The packet header structure is used to provision the packet header for CES services and to provision the strict data header for the received packet classifier. The packet header structure uses several substructures to define protocol specific parameters. In the case of VLAN and MPLS the associated protocol structures are in arrays, each entry in the array being one VLAN header or MPLS tag.
<blockquote><pre>/* Ethernet protocol data */
typedef struct <tt>bcm_ces_proto_eth_s</tt> {
    uint8 source[6];        /* Source MAC */
    uint8 destination[6];   /* Destination MAC */
} <tt>bcm_ces_proto_eth_t</tt>;

/* VLAN protocol data */
typedef struct <tt>bcm_ces_proto_vlan_s</tt> {
    uint32 priority;    /* VLAN priority */
    uint32 vid;         /* VLAN tag */
} <tt>bcm_ces_proto_vlan_t</tt>;

/* IPV4 protocol data */
typedef struct <tt>bcm_ces_proto_ipv4_s</tt> {
    uint32 tos;         /* IPv4 TOS */
    uint32 ttl;         /* IPv4 TTL */
    uint32 source;      /* IPv4 source address */
    uint32 destination; /* IPv4 destination address */
} <tt>bcm_ces_proto_ipv4_t</tt>;

/* IPV6 protocol data */
typedef struct <tt>bcm_ces_proto_ipv6_s</tt> {
    uint32 <tt>traffic_class</tt>;   /* IPv6 traffic class */
    uint32 <tt>flow_label</tt>;      /* IPv6 flow label */
    uint32 <tt>hop_limit</tt>;       /* IPv6 hop limit */
    uint32 source[16];      /* IPv6 source address */
    uint32 destination[16]; /* IPv6 destination address */
} <tt>bcm_ces_proto_ipv6_t</tt>;

/* MPLS protocol data */
typedef struct <tt>bcm_ces_proto_mpls_s</tt> {
    uint32 label;           /* MPLS label table */
    uint32 experimental;    /* MPLS experimental value table */
    uint32 ttl;             /* MPLS TTL table */
} <tt>bcm_ces_proto_mpls_t</tt>;

/* UDP protocol data */
typedef struct <tt>bcm_ces_proto_udp_s</tt> {
    uint32 destination; /* UDP destination port */
    uint32 source;      /* UDP source port */
} <tt>bcm_ces_proto_udp_t</tt>;

/* Packet header descriptor */
typedef struct <tt>bcm_ces_packet_header_s</tt> {
    <tt>bcm_ces_encapsulation_t</tt> encapsulation; /* Encapsulation type */
    <tt>bcm_ces_proto_eth_t</tt> eth;            /* Ethernet protocol parameters */
    <tt>bcm_ces_proto_vlan_t</tt> vlan[<tt>BCM_CES_PROTO_VLAN_TAG_MAX</tt>]; /* VLAN table */
    <tt>bcm_ces_proto_ipv4_t</tt> ipv4;          /* IPv4 protocol parameters */
    <tt>bcm_ces_proto_ipv6_t</tt> ipv6;          /* IPv6 protocol parameters */
    <tt>bcm_ces_proto_mpls_t</tt> mpls[<tt>BCM_CES_PROTO_MPLS_LABEL_MAX</tt>]; /* MPLS table */
    <tt>bcm_ces_proto_l2tpv3_t</tt> l2tpv3;      /* L2TPV3 protocol parameters */
    uint32 <tt>vc_label</tt>;                    /* Virtual circuit label */
    <tt>bcm_ces_proto_udp_t</tt> udp;            /* UDP protocol parameters */
    uint32 <tt>rtp_pt</tt>;                      /* Real Time Protocol port */
    uint32 <tt>rtp_ssrc</tt>;                    /* Real Time Protocol SSRC */
    uint32 <tt>ip_version</tt>;                  /* IP Version used in header */
    uint32 <tt>vlan_count</tt>;                  /* Number of VLANs */
    uint32 <tt>mpls_count</tt>;                  /* Number of MPLS labels */
    uint32 <tt>l2tpv3_count</tt>;                /* L2TPv3 count */
    int <tt>rtp_exists</tt>;                     /* Is RTP supported */
    int <tt>udp_chksum</tt>;                     /* Use UDP checksums */
} <tt>bcm_ces_packet_header_t</tt>;
</pre></blockquote>The <tt>bcm_ces_encapsulation_t</tt> value in the packet header structure defines the CES encapsulation type. The following encapsulations are supported:
<h3>Table 15:   CES Encapsulation Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Encapsulation Type</b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_ENCAPSULATION_IP</td><td> CES over IP
</td></tr><tr><td>  bcm_CES_ENCAPSULATION_MPLS</td><td> CES over MPLS
</td></tr><tr><td>  bcm_CES_ENCAPSULATION_ETH</td><td> CES over ETH
</td></tr><tr><td>  bcm_CES_ENCAPSULATION_L2TP</td><td> CES over L2TP
</td></tr></tbody></table>The <tt>ip_version</tt> field of the packet header structure defines the Internet Protocol version being used when the encapsulation type is bcm_CES_ENCAPSULATION_IP. The following IP versions are supported:
<h3>Table 16:   IP Version Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  IP Version Type</b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_IP_V4</td><td> IP version 4
</td></tr><tr><td>  bcm_CES_IP_V6</td><td> IP version 6
</td></tr></tbody></table><p>CES Service Type
<p>The following type is used for configured CES services.
<blockquote><pre>/* <tt>bcm_ces_service_t</tt> */
typedef uint16 <tt>bcm_ces_service_t</tt>;
</pre></blockquote><p>Circuit Config
<p>The <tt>bcm_ces_circuit_config_t</tt> structure is used to provision and configure the TDM ports.
<blockquote><pre>/* TDM Circuit configuration */
typedef struct <tt>bcm_ces_circuit_config_s</tt> {
    <tt>bcm_ces_tdm_proto_t</tt> <tt>tdm_protocol</tt>;   /* TDM protocol selection, T1 or E1 */
    int structured;                     /* Boolean, is TDM circuit structured? 0
                                           = unstructured, 1 = structured */
    int <tt>octet_aligned</tt>;                  /* Boolean, is TDM circuit octet
                                           aligned?, 0 = unaligned, 1 = aligned.
                                           Aligned only valid for T1
                                           unstructured */
    int <tt>signaling_enable</tt>;               /* Boolean, is CAS signalling to be
                                           used?, 0 = no, 1 = yes */
    int <tt>t1_d4_framing</tt>;                  /* Boolean, 0 = no, 1 = yes. Applies
                                           only to T1 with CAS signaling */
    uint32 <tt>clk_rx_select</tt>;               /* Selects receive clock source */
    uint32 <tt>clk_tx_select</tt>;               /* Selects transmit clock source */
} <tt>bcm_ces_circuit_config_t</tt>;
</pre></blockquote>The <tt>bcm_ces_tdm_proto_t</tt> value in the circuit config structure defines the TDM protocol. The following protocols are supported:
<h3>Table 17:   TDM Protocols
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>bcm_ces_tdm_proto_t</tt></b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_TDM_PROTOCOL_E1</td><td> E1 Protocol
</td></tr><tr><td>  bcm_CES_TDM_PROTOCOL_T1</td><td> T1 Protocol
</td></tr></tbody></table>The <tt>clk_rx_select</tt> field in the circuit config structure selects the receive clock source. The following sources are supported:
<h3>Table 18:   TDM Receive Clock Sources 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Source</b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_RX_CLK_SELECT_INDEPENDENT</td><td> Derive clock from received signal
</td></tr><tr><td>  bcm_CES_RX_CLK_SELECT_CES_SLAVE</td><td> Use clock provided by CES
</td></tr></tbody></table>The <tt>clk_tx_select</tt> field in the circuit config structure selects the transmit clock source. The following sources are supported:
<h3>Table 19:   TDM Transmit Clock Sources 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Source</b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_TX_CLK_SELECT_LOOPBACK</td><td> Loopback the received clock
</td></tr><tr><td>  bcm_CES_TX_CLK_SELECT_CCLK</td><td> Use CES common clock
</td></tr><tr><td>  bcm_CES_TX_CLK_SELECT_INTERNAL_BRG</td><td> Use internal BRG
</td></tr></tbody></table><p>Ingress Channel Config
<p>The <tt>bcm_ces_ingress_channel_config_t</tt> structure is used to provision and modify ingress channel configuration.
<blockquote><pre>/* Ingress channel config */
typedef struct <tt>bcm_ces_ingress_channel_config_s</tt> {
    uint32 <tt>payload_size</tt>;    /* Transmit packet payload size in bytes */
    int dba;                /* Boolean, enables payload compression mode when
                               transmitting packets wit the L bit set */
    int <tt>auto_r_bit</tt>;         /* Boolean. Enables automatic R bit insertion in the
                               CES control word of transmitted packets upon
                               detection of LOPS in the corresponding (the same
                               channel id) egress channel. This feature can be
                               used only in case of symmetrical channel id
                               allocation, i.e. egress channel id is equal to
                               ingress channel id */
    int <tt>mef_len_support</tt>;    /* Boolean. 1 = support, the length field value for
                               ingress TDM traffic will be computed according to
                               MEF standard. 0 = not supported, the length field
                               will be always set to 0 */
    uint32 <tt>pbf_size</tt>;        /* Payload buffer size in bytes for this channel.
                               The values allowed are 64, 128, 256, 512, 1024,
                               2048, 4096 and 8192. The value configured should
                               not exceed the <tt>n_pbf_max</tt> parameter value of
                               <tt>ag_nd_device_open</tt>. */
} <tt>bcm_ces_ingress_channel_config_t</tt>;
</pre></blockquote><p>Egress Channel Configuration
<p>The <tt>bcm_ces_egress_channel_config_t</tt> structure is used to provision and modify the egress channel configuration.
<blockquote><pre>/* Egress channel configuration */
typedef struct <tt>bcm_ces_egress_channel_config_s</tt> {
    uint32 <tt>packet_sync_selector</tt>;    /* Selects a pair of packet sync
                                       loss/acquisition thresholds. Valid range
                                       is from 0 to <tt>BCM_CES_THRESHOLD_TABLE_SIZE</tt>
                                       - 1 */
    int <tt>rtp_exists</tt>;                 /* Configures the existence of RTP header.
                                       Set to 1 if the RTP header is in use, or
                                       0 otherwise. */
    uint32 <tt>payload_size</tt>;            /* Receive packet payload size (bytes) */
    uint32 <tt>jbf_ring_size</tt>;           /* Jitter buffer ring size (in packets). The
                                       values allowed are: 8, 16, 32, 64, 128,
                                       256, 512 and 1024. The value can not
                                       exceed the maximum value determined from
                                       number of PWs supported and VBA size
                                       configured by <tt>ag_nd_device_open</tt>. */
    uint32 <tt>jbf_win_size</tt>;            /* Jitter buffer window size limit
                                       (packets). The values allowed are 8, 16,
                                       32, 64, 128, 256, 512. Additional option
                                       is <tt>BCM_CES_JBF_NO_LIMIT</tt>. This setting
                                       disables the packet drop criteria based
                                       on sequence number, i.e. any incoming
                                       packet will be accepted. */
    uint32 <tt>jbf_bop</tt>;                 /* Jitter buffer break out point (packets).
                                       The sum of <tt>n_jbf_win_size</tt> and <tt>n_jbf_bop</tt>
                                       should not exceed the <tt>n_jbf_ring_size</tt>
                                       parameter value. Or in the case
                                       <tt>n_jbf_win_size</tt> is set to
                                       <tt>BCM_CES_JBF_NO_LIMIT</tt>, the value of
                                       <tt>n_jbf_bop</tt> should not exceed
                                       <tt>n_jbf_ring_size</tt>. */
} <tt>bcm_ces_egress_channel_config_t</tt>;
</pre></blockquote><p>Channel Map
<p>The <tt>bcm_ces_channel_map_t</tt> structure is used to provision and modify the channel mapping for the ingress and egress channels.
<blockquote><pre>/* Channel mappings */
typedef struct <tt>bcm_ces_channel_map_s</tt> {
    uint16 <tt>circuit_id</tt>[<tt>BCM_CES_SLOT_MAX</tt> * <tt>BCM_CES_CIRCUIT_IDX_MAX</tt>]; /* Together with slot[] contains the
                                           list of timeslots that belong to
                                           channel. */
    uint16 slot[<tt>BCM_CES_SLOT_MAX</tt> * <tt>BCM_CES_CIRCUIT_IDX_MAX</tt>]; 
    uint32 size;                        /* Specifies the number of valid entries
                                           in the <tt>circuit_id</tt> and slot tables. */
    uint32 first;                       /* Specifies the first valid entry in
                                           the <tt>circuit_id</tt> and slot tables. */
} <tt>bcm_ces_channel_map_t</tt>;
</pre></blockquote><p>Service Configuration
<p>The <tt>bcm_ces_service_config_t</tt> structure pulls together all the required configuration structures required to configure a CES service.
<blockquote><pre>/* CES service configuration */
typedef struct <tt>bcm_ces_service_config_s</tt> {
    <tt>bcm_ces_channel_map_t</tt> <tt>ingress_channel_map</tt>; /* Ingress TDM port and timeslots */
    <tt>bcm_ces_channel_map_t</tt> <tt>egress_channel_map</tt>; /* Egress TDM port and timeslots */
    <tt>bcm_ces_ingress_channel_config_t</tt> <tt>ingress_channel_config</tt>; /* Ingress channel configuration */
    <tt>bcm_ces_packet_header_t</tt> header;     /* Packet header */
    <tt>bcm_ces_egress_channel_config_t</tt> <tt>egress_channel_config</tt>; /* Egress channel configuration */
    <tt>bcm_ces_packet_header_t</tt> <tt>strict_data</tt>; /* Received packet header match criteria */
    <tt>bcm_mac_t</tt> <tt>dest_mac</tt>;                 /* Destination MAC address */
    <tt>bcm_ces_encapsulation_t</tt> encapsulation; /* CES encapsulation type */
} <tt>bcm_ces_service_config_t</tt>;
</pre></blockquote><p>PM Stats
<p>The <tt>bcm_ces_service_pm_stats_t</tt> structure provides performance monitoring stats.
<blockquote><pre>typedef struct <tt>bcm_ces_service_pm_stats_s</tt> {
    uint32 <tt>jbf_depth_min</tt>;               /* Jitter buffer minimum depth */
    uint32 <tt>jbf_depth_max</tt>;               /* Jitter buffer maximum depth */
    uint32 <tt>jbf_underruns</tt>;               /* Jitter buffer underruns */
    uint32 <tt>jbf_missing_packets</tt>;         /* Jitter buffer missing packets */
    uint32 <tt>jbf_dropped_ooo_packets</tt>;     /* Jitter buffer dropped out of order
                                           packets. */
    uint32 <tt>jbf_reordered_ooo_packets</tt>;   /* Jitter buffer reordered out of order
                                           packets. */
    uint32 <tt>jbf_bad_length_packets</tt>;      /* Jitter bad length packets. */
    uint32 <tt>received_bytes</tt>;              /* Received packet classifier in bytes. */
    uint32 <tt>received_packets</tt>;            /* Received packet classifier in packets */
    uint32 <tt>rpc_channel_specific</tt>[<tt>BCM_CES_RPC_CCNT_MAX</tt>]; /* Received packet classifier channel
                                           specific. */
    uint32 <tt>cas_dropped</tt>;                 /* CAS dropped */
    uint32 <tt>pbf_utilization</tt>;             /* Buffer utilization */
    uint32 <tt>transmitted_bytes</tt>;           /* Output byte count */
    uint32 <tt>transmitted_packets</tt>;         /* Output packet count */
    uint32 <tt>cas_tx</tt>;                      /* CAS tx count */
} <tt>bcm_ces_service_pm_stats_t</tt>;
</pre></blockquote><p>Egress Status
<p>The <tt>bcm_ces_service_egress_status_t</tt> structure provides status on the channel egress.
<blockquote><pre>typedef struct <tt>bcm_ces_service_egress_status_s</tt> {
    <tt>bcm_ces_sync_type_t</tt> <tt>sync_state</tt>; /* Sync state */
    <tt>bcm_ces_jbf_state_t</tt> <tt>jbf_state</tt>;  /* Jitter buffer state */
    uint32 <tt>ces_cw</tt>;                  /* CES cw */
    int trimming;                   /* Trimming state */
} <tt>bcm_ces_service_egress_status_t</tt>;
</pre></blockquote><h3>Table 20:   Sync Type
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>bcm_ces_sync_type_t</tt></b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_PACKET_SYNC_LOPS</td><td> LOPS Sync
</td></tr><tr><td>  bcm_CES_PACKET_SYNC_AOPS</td><td> AOPS Sync
</td></tr></tbody></table><h3>Table 21:   Jitter Buffer State
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>bcm_ces_jbf_state_t</tt></b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_JITTER_BUFFER_STATE_IDLE</td><td> Idle
</td></tr><tr><td>  bcm_CES_JITTER_BUFFER_STATE_FILL</td><td> Fill
</td></tr><tr><td>  bcm_CES_JITTER_BUFFER_STATE_NORMAL</td><td> Normal
</td></tr><tr><td>  bcm_CES_JITTER_BUFFER_STATE_FLUSH</td><td> Flush
</td></tr></tbody></table><p>Common Clock Configuration
<p>The <tt>bcm_ces_cclk_config_t</tt> structure provides the configuration information required for provisioning the common clock.
<blockquote><pre>/* Common clock configuration */
typedef struct <tt>bcm_ces_cclk_config_s</tt> {
    int <tt>cclk_enable</tt>;                    /* Boolean. Should be set to 1 in order
                                           to drive framer RSYSCLK */
    <tt>bcm_ces_cclk_select_t</tt> <tt>cclk_select</tt>;  /* Common clock source select. */
    <tt>bcm_ces_tdm_proto_t</tt> <tt>ref_clk_proto</tt>;  /* Selects reference clock protocol. */
    <tt>bcm_ces_ref_clk_select_t</tt> <tt>ref_clk_1_select</tt>; /* Reference clock 1 source select */
    <tt>bcm_ces_ref_clk_select_t</tt> <tt>ref_clk_2_select</tt>; /* Reference clock 2 source select */
    uint32 <tt>ref_clk_1_port</tt>;              /* Selects reference clock 1 RCLK source
                                           port number */
    uint32 <tt>ref_clk_2_port</tt>;              /* Selects reference clock 2 RCLK source
                                           port number */
    uint32 <tt>ref_clk_1_brg</tt>;               /* Selects reference clock 1 RCLK BRG
                                           port number */
    uint32 <tt>ref_clk_2_brg</tt>;               /* Selects reference clock 2 RCLK BRG
                                           port number */
    uint32 <tt>ext_clk_1_dir</tt>;               /* External-clock 1 direction */
    uint32 <tt>ext_clk_2_dir</tt>;               /* External-clock 2 direction */
} <tt>bcm_ces_cclk_config_t</tt>;
</pre></blockquote><h3>Table 22:   Common Clock Source
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>bcm_ces_cclk_select_t</tt></b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_CCLK_SELECT_REF_CLK_1</td><td> Reference clock 1
</td></tr><tr><td>  bcm_CES_CCLK_SELECT_REF_CLK_2</td><td> Reference clock 2
</td></tr><tr><td>  bcm_CES_CCLK_SELECT_EXTERNAL_CLK</td><td> External clock
</td></tr></tbody></table><h3>Table 23:   Reference Clock Source
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>bcm_ces_ref_clk_select_t</tt></b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_REF_CLK_SELECT_RCLK</td><td> RCLK
</td></tr><tr><td>  bcm_CES_REF_CLK_SELECT_REF_INPUT_1</td><td> Clock reference 1
</td></tr><tr><td>  bcm_CES_REF_CLK_SELECT_REF_INPUT_2</td><td> Clock reference 2
</td></tr><tr><td>  bcm_CES_REF_CLK_SELECT_NOMAD_BRG</td><td> NOMAD bit rate generator
</td></tr><tr><td>  bcm_CES_REF_CLK_SELECT_PORT_BRG</td><td> Port bit rate generator
</td></tr><tr><td>  bcm_CES_REF_CLK_SELECT_PTP</td><td> PTP
</td></tr></tbody></table><h3>Table 24:   External Clock Direction
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Direction</b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_EXT_CLK_DIR_INPUT</td><td> Input
</td></tr><tr><td>  bcm_CES_EXT_CLK_DIR_OUTPUT</td><td> Output
</td></tr></tbody></table><p>Recovered Clock Configuration
<p>The <tt>bcm_ces_rclock_config_t</tt> structure provides configuration information for provisioning the recovered clock.
<blockquote><pre>/* Recovered clock configuration */
typedef struct <tt>bcm_ces_rclock_config_s</tt> {
    int enable;             /* Enable received clock instance */
    uint8 <tt>output_brg</tt>;       /* 0 = port'd brg, 1 = system brg1, 2 = system brg2 */
    uint8 rclock;           /* Received clock instance, 0 through 3 */
    uint8 port;             /* If <tt>output_brg</tt> is set to port brg then this is por
                               that will be used */
    uint8 <tt>recovery_type</tt>;    /* 0 = adaptive, 1 = differential */
} <tt>bcm_ces_rclock_config_t</tt>;
</pre></blockquote><p><hr noshade>
<h3>APIs for Section 5.3.2:  Circuit Emulation Services
</h3>
<a name=bcm_ces_init></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_init</tt><br>
</h2>

<blockquote>
Initialize CES module.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_init(
    int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Initializes the CES device driver and allocates service control structures. 
This API should only be called one for the lifetime of the run.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 The CES driver failed to initialize correctly
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_MEMORY</tt></td><td>&nbsp;&nbsp;</td><td>
 Insufficient memory
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_services_init></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_services_init</tt><br>
</h2>

<blockquote>
Initialize CES services subsystem. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_services_init(
    int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Initialize CES services subsystem. Deletes all current CES channels
and resets CES to the default configuration.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_MEMORY</tt></td><td>&nbsp;&nbsp;</td><td>
 Insufficient memory
</td></tr>
</table></blockquote>
<a name=bcm_ces_services_clear></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_services_clear</tt><br>
</h2>

<blockquote>
Initialize CES services subsystem without affecting current hardware
state.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_services_clear(
    int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Initialize CES services subsystem without affecting current hardware
state.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_create></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_create</tt><br>
</h2>

<blockquote>
Allocate and configure a CES service. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_create(
    int unit, 
    int flags, 
    bcm_ces_service_config_t *config, 
    bcm_ces_service_t *ces_service);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>flags</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) &lt;UNDEF&gt;
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) &lt;UNDEF&gt;
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) CES Channel
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Allocate and configure a CES service. With the flags field set to 0
and no <tt>ces_service</tt> specified the configuration is applied entirely
from the config parameter. With the flags field set to <tt>BCM_CES_WITH_ID</tt>
the configuration is applied only for the substructures that have
changed in the config parameter. With the <tt>BCM_CES_TDM_UPDATE_WITH_ID</tt>
flag set only configuration of the associated TDM port is applied, the
config field is ignored and may be set to <tt>NULL</tt>.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_BADID</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid service ID was used
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_PARAM</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid config parameter
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_destroy></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_destroy</tt><br>
</h2>

<blockquote>
Deallocate a CES service. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_destroy(
    int unit, 
    bcm_ces_service_t ces_service);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Deallocate a CES service. Frees all resources associated with the CES
service.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_BADID</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid service ID was used
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_PARAM</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid config parameter
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_destroy_all></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_destroy_all</tt><br>
</h2>

<blockquote>
Deallocate all CES services.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_destroy_all(
    int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Deallocate all CES services.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_enable_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_enable_set</tt><br>
</h2>

<blockquote>
Enables or disables a CES service.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_enable_set(
    int unit, 
    bcm_ces_service_t ces_service, 
    int enable);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>enable</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Boolean 1==enable, 0==disable
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Enables or disables a CES service.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_BADID</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid service ID was used
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_enable_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_enable_get</tt><br>
</h2>

<blockquote>
Get CES service enable state.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_enable_get(
    int unit, 
    bcm_ces_service_t ces_service, 
    int *enable);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>enable</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Boolean 1 == enabled, 0 == disabled
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get CES service enable state.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_BADID</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid service ID was used
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_config_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_config_get</tt><br>
</h2>

<blockquote>
Get the current configuration parameters for a CES service.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_config_get(
    int unit, 
    bcm_ces_service_t ces_service, 
    bcm_ces_service_config_t **config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Service config.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get the current configuration parameters for a CES service.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_BADID</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid service ID was used
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_services_traverse></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_services_traverse</tt><br>
</h2>

<blockquote>
List all currently configured CES services.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_services_traverse(
    int unit, 
    uint32 flags, 
    bcm_ces_service_traverse_cb cb, 
    void *user_data);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>flags</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Flags
</td></tr>
<tr><td class="arg" valign="top"><tt>cb</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Call back function pointer
</td></tr>
<tr><td class="arg" valign="top"><tt>user_data</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) User data
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
List all currently configured CES services.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_ingress_cas_ABCD_get></a>
<hr noshade>
<h2 class="api">
bcm_ces_service_ingress_cas_ABCD_get<br>
</h2>

<blockquote>
Get ingress or egress ABCD bits for CES services.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_ingress_cas_ABCD_get(
    int unit, 
    bcm_ces_service_t ces_service, 
    bcm_ces_cas_status_t *status, 
    uint8 *a_abcd[BCM_CES_SLOT_MAX]);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>status</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Status
</td></tr>
<tr><td class="arg" valign="top"><tt>a_abcd</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) CAS bits
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get ingress or egress ABCD bits for CES services.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_cas_status_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_cas_status_get</tt><br>
</h2>

<blockquote>
Get bitmask indicating which CAS bits have changed since last call.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_cas_status_get(
    int unit, 
    bcm_ces_service_t ces_service, 
    uint32 *changed);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>changed</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) CAS bits changed
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get bitmask indicating which CAS bits have changed since last call.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ces_egress_status_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_egress_status_get</tt><br>
</h2>

<blockquote>
Gets the CES service egress status.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_egress_status_get(
    int unit, 
    bcm_ces_service_t ces_service, 
    bcm_ces_service_egress_status_t *status);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>status</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Egress status
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Gets the CES seer-vice egress status.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_BADID</tt></td><td>&nbsp;&nbsp;</td><td>
 Invalid service ID was used
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_pm_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_pm_get</tt><br>
</h2>

<blockquote>
Gets the performace monitoring stats for a CES service.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_pm_get(
    int unit, 
    bcm_ces_service_t ces_service, 
    bcm_ces_service_pm_stats_t *stats);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>stats</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PM Stats
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Gets the performace monitoring stats for a CES service.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_ces_service_pm_clear></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_pm_clear</tt><br>
</h2>

<blockquote>
Resets the performace monitoring stats for a CES seervice.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_pm_clear(
    int unit, 
    bcm_ces_service_t ces_service);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Resets the performace monitoring stats for a CES seervice.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_ces_services_cclk_config_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_services_cclk_config_set</tt><br>
</h2>

<blockquote>
Set the clock configuration parameters that are common to all CES
services.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_services_cclk_config_set(
    int unit, 
    bcm_ces_cclk_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) config
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set the clock configuration parameters that are common to all CES
services.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_services_cclk_config_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_services_cclk_config_get</tt><br>
</h2>

<blockquote>
Get the clock configuration parameters that are common to all CES
services.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_services_cclk_config_get(
    int unit, 
    bcm_ces_cclk_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) config
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_ces_services_cclk_config_get</tt>
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INTERNAL</tt></td><td>&nbsp;&nbsp;</td><td>
 An internal error occurred
</td></tr>
</table></blockquote>
<a name=bcm_ces_service_rclock_config_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_rclock_config_set</tt><br>
</h2>

<blockquote>
Set the received clock timing configuration parameters for a CES
service.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_rclock_config_set(
    int unit, 
    bcm_ces_service_t ces_service, 
    bcm_ces_rclock_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) config
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set the received clock timing configuration parameters for a CES
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_ces_service_rclock_config_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ces_service_rclock_config_get</tt><br>
</h2>

<blockquote>
Get the received clock timing configuration parameters for a CES
service.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ces.h&gt;
int 
bcm_ces_service_rclock_config_get(
    int unit, 
    bcm_ces_service_t ces_service, 
    bcm_ces_rclock_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_service</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) CES Channel
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) config
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get the received clock timing configuration parameters for a CES
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<br><hr noshade><a name="cosq"></a>
<h3>Section 5.3.3:   Class Of Serive Queue Management
</h3>
<p>The following new bandwidth shaping controls have been added to <tt>bcm_cosq_port_bandwidth_set</tt>

<a name=BCM_COSQ_BW_f></a>
<h3>Table 25:   Port Bandwidth Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_COSQ_BW_EAV_MODE</tt></td><td> Enable EAV mode
</td></tr></tbody></table><p>The following new discard controls have been added to  <tt>bcm_cosq_gport_discard_set</tt>

<a name=BCM_COSQ_GPORT_DISCARD_f></a>
<h3>Table 26:   gport Discard Color Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_COSQ_DISCARD_MARK_CONGESTION</tt></td><td> Mark ECN instead of dropping
</td></tr><tr><td>  <tt>BCM_COSQ_DISCARD_PORT</tt></td><td> Configure per-port thresholds.
</td></tr><tr><td>  <tt>BCM_COSQ_DISCARD_DEVICE</tt></td><td> Configure per-device thresholds.
</td></tr></tbody></table><p>The following new cosq controls have been added to <tt>bcm_cosq_control_set</tt>

<a name=BCM_COSQ_CONTROL_table></a>
<h3>Table 27:   COSQ Control Type Values
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b> Value
 </b></td><td><b> Description
 </b></td><td><b> Arg value
</b></td></tr><tr><td><tt>bcmCosqControlEfPropagation</tt></td><td> Enable/disable EF propogation
 </td><td><tt>value:</tt> 1 Enable, 0: Disable.
</td></tr><tr><td><tt>bcmCosqControlFlowControlState</tt></td><td> Set flow control state.
 </td><td><tt>value:</tt> fifo bitmask, bit 0 for fifo 0 of the port, 1 means not flow controlled, 0 means flow controlled.
</td></tr></tbody></table><p>The following stats types have been added to <tt>bcm_cosq_gport_stats_t</tt>

<a name=BCM_COSQ_GPORT_STATISTICS_table></a>
<h3>Table 28:   gport Statistics 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Description
</b></td></tr><tr><td>  bcmCosqGportReceivedBytes</td><td> Bytes received into queue.
</td></tr><tr><td>  bcmCosqGportReceivedPkts</td><td> Pkts received into queue.
</td></tr><tr><td>  bcmCosqGportDroppedBytes</td><td> Bytes dropped in queue.
</td></tr><tr><td>  bcmCosqGportDroppedPkts</td><td> Pkts dropped in queue.
</td></tr><tr><td>  bcmCosqGportDelayedBytes</td><td> Delayed bytes.
</td></tr><tr><td>  bcmCosqGportDelayedHundredUs</td><td> Maximum Pkts delay.
</td></tr></tbody></table><p>The following controls has been added to <tt>bcm_cosq_gport_add</tt>

<a name=BCM_COSQ_GPORT_TYPE></a>
<h3>Table 29:   COSQ GPORT Type
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b> Value
 </b></td><td><b> Description
</b></td></tr><tr><td> <tt>BCM_COSQ_GPORT_MULTIPATH</tt>
 </td><td> Create a multipath shaper port
</td></tr><tr><td> <tt>BCM_COSQ_GPORT_VLAN_UCAST_QUEUE_GROUP</tt>
 </td><td> Create a VLAN shaping group
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.3:  Class Of Serive Queue Management
</h3>
<a name=bcm_cosq_pfc_config_get></a>
<a name=bcm_cosq_pfc_config_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_cosq_pfc_config_get</tt><br>
<tt>bcm_cosq_pfc_config_set</tt><br>
</h2>

<blockquote>
 Configure Priority-based Flow control (PFC).
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/cosq.h&gt;
int bcm_cosq_pfc_config_set(
    int unit,
    bcm_gport_t gport,
    bcm_cos_queue_t cosq,	
    uint32 flags,
    bcm_cosq_pfc_config_t config,
    int *pfc_id);

int bcm_cosq_pfc_config_get(
    int unit,
    bcm_gport_t gport,
    bcm_cos_queue_t cosq,	
    uint32 flags,
    bcm_cosq_pfc_config_t *config,
    int *pfc_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
	BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>gport</tt></td><td>&nbsp;&nbsp;</td><td>
 Source port for Source port/Priority based flow control scheme,
		pass in <tt>BCM_GPORT_INVALID</tt> for Priority only based flow control scheme.
</td></tr>
<tr><td class="arg" valign="top"><tt>cosq</tt></td><td>&nbsp;&nbsp;</td><td>
 Packet priority
</td></tr>
<tr><td class="arg" valign="top"><tt>flags</tt></td><td>&nbsp;&nbsp;</td><td>
 Specifies configuration.
 <ul><li> <tt>BCM_COSQ_GPORT_PFC_CONFIG_WITH_ID</tt>
 </li></ul></td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
   PFC configurations. see table BCM_COSQ_PFC_CONFIG_table.
<p>PFC configuration is listed in the following tables.

<a name=BCM_COSQ_PFC_CONFIG_table></a>
<h3>Table 30:   BCM COSQ PFC Configuration
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Parameter</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>xoff_threshold</tt></td><td> Assert backpressure when number of buffers used is at or above this threshold
</td></tr><tr><td>  <tt>xon_threshold</tt></td><td> Remove backpressure when number of buffers used drops below this threshold
</td></tr><tr><td>  <tt>xoff_threshold_bd</tt></td><td> Assert backpressure when number of buffer descriptors used is at or above this threshold
</td></tr><tr><td>  <tt>xon_threshold_bd</tt></td><td> Remove backpressure when number of buffer descriptors used drops below this threshold
</td></tr><tr><td>  <tt>drop_threshold</tt></td><td> Drop packets when number of buffers used hit this threshold
</td></tr><tr><td>  <tt>reserved_buffers</tt></td><td> Number of buffers reserved for the specified priority
</td></tr><tr><td>  lossless</td><td> lossless PFC enable for the specified priority
</td></tr></tbody></table></td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Configure the priority based flow control (PFC) features.
When gport is set to <tt>BCM_GPORT_INVALID</tt>, the API configs the thresholds for the priority
specified by the cosq parameter. For (source port, priority) based flow control scheme,
the gport specifies the source port. It's possible that devices support both per priority 
threshold and (source port, priority) threshold at the same time.
<p>Typical settings for the thresholds are <tt>drop_threshold</tt> &gt;= <tt>xoff_threshold</tt> &gt;= <tt>xon_threshold</tt>,
When the buffers used for a priority hit or go above the <tt>xoff_threshold</tt>, backpressure is 
asserted, if the buffers used are at <tt>drop_threshld</tt>, all incoming packets will be dropped. 
when the buffers used for the priority drops below the <tt>xon_threshold</tt>, backpressure is removed.
<tt>drop_threshold</tt> could be disabled when set to 0.
<p>For a particular device, it's possible only some config parameters applies, unused configs will 
be ignored by SDK.
<p>For devices that don't need to return <tt>pfc_id</tt>, set <tt>pfc_id</tt> pointer to <tt>NULL</tt>.
<p><tt>bcm_cosq_pfc_config_t</tt>
<blockquote><pre>typedef struct <tt>bcm_cosq_pfc_config_s</tt> {
    int <tt>xoff_threshold</tt>;     /* Assert backpressure when number of buffers used
                               is at or above this threshold. */
    int <tt>xon_threshold</tt>;      /* Remove backpressure when number of buffers used
                               drops below this threshold. */
    int <tt>xoff_threshold_bd</tt>;  /* Assert backpressure when number of buffer
                               descriptors used is at or above this threshold. */
    int <tt>xon_threshold_bd</tt>;   /* Remove backpressure when number of buffer
                               descriptors used drops below this threshold. */
    int <tt>drop_threshold</tt>;     /* Drop packets when number of buffers used hit this
                               threshold. */
    int <tt>reserved_buffers</tt>;   /* Number of buffers reserved for the specified
                               priority group. */
    int lossless;           /* lossless PFC enable for the specified priority
                               group. */
} <tt>bcm_cosq_pfc_config_t</tt>;

</pre></blockquote></blockquote><a name=bcm_cosq_gport_mapping_set></a>
<a name=bcm_cosq_gport_mapping_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_cosq_gport_mapping_set</tt><br>
<tt>bcm_cosq_gport_mapping_get</tt><br>
</h2>

<blockquote>
 Get or set the mapping from internal priority to COS queue.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/cosq.h&gt;
int bcm_cosq_gport_mapping_set(int unit, bcm_port_t ing_port,e
                               bcm_cos_t priority, uint32 flags,
                               bcm_gport_t gport, bcm_cos_queue_t cosq);
int bcm_cosq_gport_mapping_get(int unit, bcm_port_t ing_port,
                               bcm_cos_t priority, uint32 flags,
                               bcm_gport_t *gport, bcm_cos_queue_t *cosq);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
	(IN) BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>ing_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Ingress device or logical port or GPORT ID
</td></tr>
<tr><td class="arg" valign="top"><tt>priority</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) internal priority to map
</td></tr>
<tr><td class="arg" valign="top"><tt>flags</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Can be one of following
 <ul><li> <tt>BCM_COSQ_GPORT_UCAST_QUEUE_GROUP</tt>
 </li><li> <tt>BCM_COSQ_GPORT_DESTMOD_UCAST_QUEUE_GROUP</tt>
 </li><li> <tt>BCM_COSQ_GPORT_MCAST_QUEUE_GROUP</tt>
 </li></ul></td></tr>
<tr><td class="arg" valign="top"><tt>gport</tt></td><td>&nbsp;&nbsp;</td><td>
    (IN/OUT) GPORT ID for a queue group
</td></tr>
<tr><td class="arg" valign="top"><tt>cosq</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) COS queue to which to map the chosen priority
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Configure or retrieve the mapping from the internal priority value to
COS Queue. The internal priority is usually initialized from the
packet priority.  For tagged packets the priority is extracted from
the PRI field of the tag. For untagged packets, the priority is
specified using the API <tt>bcm_port_untagged_priority_set</tt>.
<p>On some devices, the mapping tables may be shared among several ports,
so setting one port's mappings may affect other ports'.
<p>On some devices, packets directed to the CPU interface port may have
their priority assigned independent of this setting. For more
information see <tt>bcm_switch_control_set</tt>.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_PARAM</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
</table></blockquote>
<a name=bcm_cosq_gport_multipath_add></a>
<a name=bcm_cosq_gport_multipath_delete></a>
<a name=bcm_cosq_gport_multipath_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_cosq_gport_multipath_add</tt><br>
<tt>bcm_cosq_gport_multipath_delete</tt><br>
<tt>bcm_cosq_gport_multipath_get</tt><br>
</h2>

<blockquote>
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/cosq.h&gt;

int 
bcm_cosq_gport_multipath_add(
    int                unit, 
    bcm_gport_t        multipath_gport,
    bcm_gport_t        member_gport,
    bcm_cos_queue_t    member_gport_cosq);

int 
bcm_cosq_gport_multipath_delete(
    int                unit, 
    bcm_gport_t        multipath_gport,
    bcm_gport_t        member_gport,
    bcm_cos_queue_t    member_gport_cosq);

int 
bcm_cosq_gport_multipath_get(
    int                unit, 
    bcm_gport_t        multipath_gport,
    int                member_gport_max,
    bcm_gport_t        *member_gport_array,
    bcm_cos_queue_t    *member_gport_cosq_array,
    int                *member_gport_count);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
                  (IN)     Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>multipath_gport</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Multipath shaper gport
</td></tr>
<tr><td class="arg" valign="top"><tt>multipath_gport_max</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Max number of member gport returned
</td></tr>
<tr><td class="arg" valign="top"><tt>member_gport</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) Gport added to the multipath shaper
</td></tr>
<tr><td class="arg" valign="top"><tt>member_gport_cosq</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) COS priority for multipath gport member
</td></tr>
<tr><td class="arg" valign="top"><tt>member_gport_count</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Number of member gports returned in the array
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
These APIs are used to manage members of multipath shaper. Member gports could be added to or 
deleted from the specified multipath shaper.
<p><tt>multipath_get</tt> is used to get the current membership of the multipath shaper.
User passes in the array pointer and the array size, API fills the array and return
the number of valid entry in the array.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_PARAM</tt></td><td>&nbsp;&nbsp;</td><td>
     - Incorrect parameter
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 - success
</td></tr>
</table></blockquote>
<a name=bcm_cosq_gport_report_threshold_set></a>
<a name=bcm_cosq_gport_report_threshold_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_cosq_gport_report_threshold_set</tt><br>
<tt>bcm_cosq_gport_report_threshold_get</tt><br>
</h2>

<blockquote>
Get/set queue report thresholds
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/cosq.h&gt;
int 
bcm_cosq_gport_report_threshold_set(
    int unit, 
    bcm_gport_t gport, 
    bcm_cos_queue_t cosq, 
    bcm_cosq_report_threshold_t *threshold);
int 
bcm_cosq_gport_report_threshold_get(
    int unit, 
    bcm_gport_t gport, 
    bcm_cos_queue_t cosq, 
    bcm_cosq_report_threshold_t *threshold);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>gport</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT ID for a queue group
</td></tr>
<tr><td class="arg" valign="top"><tt>cosq</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) COS Queue
</td></tr>
<tr><td class="arg" valign="top"><tt>threshold</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) (for "<tt>_set</tt>") Queue report thresholds
</td></tr>
<tr><td class="arg" valign="top"><tt>threshold</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) (for "<tt>_get</tt>") Queue report thresholds
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get/set queue report thresholds. The maximum number of 4 thresholds is supported
per queue. They apply to the dynamical bandwidth allocation of EPON.

<a name=BCM_COSQ_REPORT_THRESHOLD_table></a>
<h3>Table 31:   bcm_cosq_report_threshold_t 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Description
</b></td></tr><tr><td>  threshold0</td><td> Queue report threshold0.
</td></tr><tr><td>  threshold1</td><td> Queue report threshold1.
</td></tr><tr><td>  threshold2</td><td> Queue report threshold2.
</td></tr><tr><td>  threshold3</td><td> Queue report threshold3.
</td></tr></tbody></table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
</table></blockquote>
<br><hr noshade><a name="fabric"></a>
<h3>Section 5.3.4:   Fabric
</h3>
<p>The following new controls are added to the <tt>bcm_fabric_control_set</tt>

<a name=bcm_fabrics></a>
<h3>Table 32:   Fabric Type Values
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b> Value
 </b></td><td><b> Description
</b></td></tr><tr><td><tt>bcmFabricDemandCalculationEnable</tt></td><td> Enable or disable demand calculation on node.
</td></tr><tr><td><tt>bcmFabricOperatingIntervalEnable</tt></td><td> Enable start of epoch signal on arbiter.
</td></tr><tr><td><tt>bcmFabricIngressLevel1NumSchedulers</tt></td><td> Specifies the total number of ingress schedulers on level 1
</td></tr><tr><td><tt>bcmFabricIngressLevel2NumSchedulers</tt></td><td> Specifies the total number of ingress schedulers on level 2
</td></tr><tr><td><tt>bcmFabricIngressLevel3NumSchedulers</tt></td><td> Specifies the total number of ingress schedulers on level 3
</td></tr><tr><td><tt>bcmFabricIngressLevel4NumSchedulers</tt></td><td> Specifies the total number of ingress schedulers on level 4
</td></tr><tr><td><tt>bcmFabricIngressLevel5NumSchedulers</tt></td><td> Specifies the total number of ingress schedulers on level 5
</td></tr><tr><td><tt>bcmFabricIngressLevel6NumSchedulers</tt></td><td> Specifies the total number of ingress schedulers on level 6
</td></tr><tr><td><tt>bcmFabricIngressLevel7NumScheduler</tt></td><td> Specifies the total number of ingress schedulers on level 7
</td></tr><tr><td><tt>bcmFabricIngressLevel1SchedulerUpdateCycles</tt></td><td> Specifies ingress scheduler update interval on level 1
</td></tr><tr><td><tt>bcmFabricIngressLevel2SchedulerUpdateCycles</tt></td><td> Specifies ingress scheduler update interval on level 2
</td></tr><tr><td><tt>bcmFabricIngressLevel3SchedulerUpdateCycles</tt></td><td> Specifies ingress scheduler update interval on level 3
</td></tr><tr><td><tt>bcmFabricIngressLevel4SchedulerUpdateCycles</tt></td><td> Specifies ingress scheduler update interval on level 4
</td></tr><tr><td><tt>bcmFabricIngressLevel5SchedulerUpdateCycles</tt></td><td> Specifies ingress scheduler update interval on level 5
</td></tr><tr><td><tt>bcmFabricIngressLevel6SchedulerUpdateCycles</tt></td><td> Specifies ingress scheduler update interval on level 6
</td></tr><tr><td><tt>bcmFabricIngressLevel7SchedulerUpdateCycles</tt></td><td> Specifies ingress scheduler update interval on level 7
</td></tr></tbody></table><p><br><hr noshade><a name="field"></a>
<h3>Section 5.3.5:   Field
</h3>
<p>The following UDF control flags are added to <tt>bcm_filed_udf_spec_get</tt>

<a name=UDF></a>
<h3>Table 33:   UDF control flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td> control flags
<tr><td><b> Value
 </b></td><td><b> Description
</b></td></tr><tr><td><tt>BCM_FIELD_USER_ANY_MPLS_LABELS</tt></td><td> Any MPLS Label for MPLS header format.
</td></tr><tr><td><tt>BCM_FIELD_USER_ONE_FCOE_HEADER</tt></td><td> One FCOE header.
</td></tr><tr><td><tt>BCM_FIELD_USER_TWO_FCOE_HEADER</tt></td><td> Two FCOE header.
</td></tr></tbody></table><p>The following new field qualifier enumerations have been added to <tt>bcm_field_qualify_t</tt>

<a name=fp_qualifiers_table></a>
<h3>Table 34:   Field Qualifiers 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Qualifier</b></td><td><b> Purpose
</b></td></tr><tr><td>  bcmFieldQualifySrcVirtualPortValid,</td><td> Source Virtual Port is valid.
</td></tr><tr><td>  bcmFieldQualifyDstL3EgressNextHops,</td><td> L3 Egress Next Hop Indices.
</td></tr><tr><td>  bcmFieldQualifyLlidValue</td><td> LLID value (2 bytes) in preamble.
</td></tr></tbody></table><p>The following control has been added to <tt>bcm_field_range_create</tt>

<a name=Range></a>
<h3>Table 35:   Range Control Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td> Control Flags
<tr><td><b>  Value</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>BCM_FIELD_RANGE_LOOKUP</tt></td><td> Create range checker on Lookup Table
</td></tr></tbody></table><p>The following action enumerations have been added to <tt>bcm_field_action_t</tt>

<a name=fp_action_table></a>
<h3>Table 36:   Field IP Type 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  Action</td><td>  Description</td><td>  param0</td><td> param1
</td></tr><tr><td> bcmFieldActionOuterVlanDelete
 </td><td> Delete outer VLAN tag.
 </td><td>  n/a</td><td> n/a
</td></tr><tr><td> bcmFieldActionOuterVlanDeleteCancel
 </td><td> Override previous outer VLAN tag delete.
 </td><td>  n/a</td><td> n/a
</td></tr><tr><td> bcmFieldActionOuterVlanAddCancel
 </td><td> Override previous outer VLAN tag add.
 </td><td>  n/a</td><td> n/a
</td></tr><tr><td> bcmFieldActionUseGlobalMeterColor
 </td><td> Use Global Meter output color instead of CNG based color as input packet color
 </td><td>  n/a</td><td> n/a
</td></tr><tr><td> bcmFieldActionRedirectEgrNextHop
 </td><td> Redirect packet to an ECMP group or Next Hop index
 </td><td>  Egress Object ID. Applicable only if bcmSwitchL3EgressMode set to TRUE</td><td> n/a
</td></tr></tbody></table><p>The following have been added to the FP field control structure <tt>bcm_field_control_t</tt> 

<a name=fp_control_values></a>
<h3>Table 37:   Field Control Values 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  bcmFieldControlRedirectNonUcastEtherTrunkResolve</td><td> Enable uniform distribution of
                                           non-unicast FP redirected traffic over Ethernet Ports
</td></tr><tr><td>  bcmFieldControlRedirectNonUcastFabricTrunkResolve</td><td> Enable uniform distribution of
                                           non-unicast FP redirected traffic over HiGig Ports
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.5:  Field
</h3>
<a name=bcm_field_qualify_SrcVirtualPortValid></a>
<hr noshade>
<h2 class="api">
bcm_field_qualify_SrcVirtualPortValid<br>
</h2>

<blockquote>
Qualify on whether Source Virtual port is valid 
<p>int bcm_field_qualify_SrcVirtualPortValid(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint8 data, uint8 mask);
</blockquote><a name=bcm_field_qualify_DstL3EgressNextHops></a>
<hr noshade>
<h2 class="api">
bcm_field_qualify_DstL3EgressNextHops<br>
</h2>

<blockquote>
Qualify on consecutive Egress Next hops
<p>int bcm_field_qualify_DstL3EgressNextHops(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint32 data, uint32 mask);
</blockquote><a name=bcm_field_qualify_LlidValue></a>
<hr noshade>
<h2 class="api">
bcm_field_qualify_LlidValue<br>
</h2>

<blockquote>
Qualify on consecutive Egress Next hops
<p>int bcm_field_qualify_LlidValue(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint16 data, uint16 mask);
</blockquote><a name=bcm_field_qualify_SrcVirtualPortValid_get></a>
<hr noshade>
<h2 class="api">
bcm_field_qualify_SrcVirtualPortValid_get<br>
</h2>

<blockquote>
Get match criteria for bcmFieldQualifySrcVirtualPortValid qualifier from field entry  
<p>int bcm_field_qualify_SrcVirtualPortValid_get(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint8 *data, uint8 *mask);
</blockquote><a name=bcm_field_qualify_DstL3EgressNextHops_get></a>
<hr noshade>
<h2 class="api">
bcm_field_qualify_DstL3EgressNextHops_get<br>
</h2>

<blockquote>
Get match criteria for bcmFieldQualifyDstL3EgressNextHops qualifier from field entry  
<p>int bcm_field_qualify_DstL3EgressNextHops_get(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint32 *data, uint32 *mask);
</blockquote><a name=bcm_field_qualify_LlidValue_get></a>
<hr noshade>
<h2 class="api">
bcm_field_qualify_LlidValue_get<br>
</h2>

<blockquote>
Get match criteria for bcmFieldQualifyLlidValue qualifier from field entry  
<p>int bcm_field_qualify_LlidValue_get(int unit, <tt>bcm_field_entry_t</tt> entry,
                                          uint16 *data, uint16 *mask);
</blockquote><a name=bcm_field_stat_create_id></a>
<hr noshade>
<h2 class="api">
<tt>bcm_field_stat_create_id</tt><br>
</h2>

<blockquote>
Create stat collection entity with specified Statistics entity ID value.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/field.h&gt;
int bcm_field_stat_create_id(int unit, bcm_field_group_t group, 
                          int nstat, bcm_field_stat_t *stat_arr, 
                          int stat_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
     (IN) BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>group</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Field group statistics entity will be associated with in the future.
</td></tr>
<tr><td class="arg" valign="top"><tt>nstat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of elements in <tt>stat_arr</tt> - counter types array.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_arr</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Array of counters to be collected in statistics entity.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Statistics entity ID.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Creates an aggregated entity describing set of counters. The entity might be
attached to field processor entries and used for various counters collection.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
</table></blockquote>
<a name=bcm_field_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_field_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given field group.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/field.h&gt;
int 
bcm_field_stat_id_get(
    int              unit,
    uint32           stat_id,
    bcm_field_stat_t stat,
    uint32           *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Statistics entity ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given field group.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_field_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_field_stat_attach</tt><br>
</h2>

<blockquote>
Attach counters entries to a field group
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/field.h&gt;
int 
bcm_field_stat_attach(
    int               unit,
    bcm_field_group_t field_group
    uint32            stat_counter_id);
    uint32            *stat_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>field_group</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Field group statistics entity will be
                            Associated with in the future
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Statistics entity ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counters entries to a field group.
<p>The entity might be attached to field processor entries and used for 
various counters collection. 
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_field_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_field_stat_detach</tt><br>
</h2>

<blockquote>
Detach counters entries to a field group.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/field.h&gt;
int 
bcm_field_stat_detach(
    int    unit,
    uint32 stat_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Statistics entity ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach counters entries to a field group.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_field_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_field_stat_counter_get</tt><br>
</h2>

<blockquote>
Get counter statistic values for a field entity
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/field.h&gt;
int 
bcm_field_stat_counter_get(
    int              unit,
    uint32           stat_id,
    bcm_field_stat_t stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Statistics entity ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic Values for specific field entity
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_field_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_field_stat_counter_set</tt><br>
</h2>

<blockquote>
Set counter statistic values for a field entity
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/field.h&gt;
int 
bcm_field_stat_counter_set(
    int              unit,
    uint32           stat_id,
    bcm_field_stat_t stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Statistics entity ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
API will set counter statistic values for specific statistic entity.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<br><hr noshade><a name="ipfix"></a>
<h3>Section 5.3.6:   IPFIX
</h3>
<p>The following control flags have been added to the IPFIX Export Data flags
<h3>Table 38:   BCM IPFIX Export Data Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td> <tt>BCM_IPFIX_DATA_NON_FRAGMENT_PKT_DETECTED</tt>
 </td><td> Flow has one or more non fragment packet
</td></tr><tr><td> <tt>BCM_IPFIX_DATA_FRAGMENT_PKT_DETECTED</tt>
 </td><td> Flow has one or more fragment packet
</td></tr><tr><td> <tt>BCM_IPFIX_DATA_TTL_CHANGED_DETECTED</tt>
 </td><td> At least one packet has different TTL value than rest of the packets in the flow
</td></tr><tr><td> <tt>BCM_IPFIX_DATA_DROP_DETECTED</tt>
 </td><td> Flow has one or more dropped packet
</td></tr></tbody></table><p>The structure <tt>bcm_ipfix_data_t</tt> has been modified to include the following structure members
<h3>Table 39:   bcm_ipfix_data_t 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Data Type</b></td><td><b>  Member Name</b></td><td><b> Description
</b></td></tr><tr><td>  uint32</td><td>  ttl</td><td> TTL value of the first packet.
</td></tr><tr><td>  unit32</td><td>  <tt>tcp_flags</tt></td><td> TCP Flags
</td></tr><tr><td>  <tt>bcm_gport_t</tt></td><td>  <tt>dest_port</tt></td><td> Destination
</td></tr><tr><td>  <tt>bcm_vlan_t</tt></td><td>  <tt>egress_vlan</tt></td><td> Egress Vlan
</td></tr><tr><td>  <tt>bcm_multicast_t</tt></td><td>  <tt>dest_multicast</tt></td><td> Destination multicast group
</td></tr></tbody></table><blockquote><pre>typedef struct <tt>bcm_ipfix_data_s</tt> {
    <tt>bcm_ipfix_stage_t</tt> stage;       /* ingress or egress */
    uint32      flags;             /* <tt>BCM_IPFIX_DATA_</tt>* */
    <tt>bcm_port_t</tt>  port;
    <tt>bcm_vlan_t</tt>  vlan;              /* L2: vlan identifier */
    uint16      <tt>vlan_prio</tt>;         /* L2: vlan priority */
    uint16      <tt>ether_type</tt>;        /* L2: type in Ethernet II frame or
                                    * 802.1Q tag */
    <tt>bcm_mac_t</tt>   <tt>src_mac_addr</tt>;      /* L2: source MAC address */
    <tt>bcm_mac_t</tt>   <tt>dst_mac_addr</tt>;      /* L2: destination MAC address */
    <tt>bcm_ip_t</tt>    <tt>src_ip4_addr</tt>;      /* IP4: source IP address */
    <tt>bcm_ip_t</tt>    <tt>dst_ip4_addr</tt>;      /* IP4: destination IP address */
    <tt>bcm_ip6_t</tt>   <tt>src_ip6_addr</tt>;      /* IP6: source IP address */
    <tt>bcm_ip6_t</tt>   <tt>dst_ip6_addr</tt>;      /* IP6: destination IP address */
    uint16      <tt>ip_protocol</tt>;       /* IP4: protocol, IP6: next header */
    uint16      tos;               /* IP4: type of service
                                    * IP6: traffic class */
    uint32      <tt>ip6_flow_label</tt>;    /* IP6: flow label */
    uint16      <tt>l4_src_port</tt>;       /* first 16 bits of L4 header */
                                   /* such as TCP source port */
                                   /* or ICMP type and code */
    uint16      <tt>l4_dst_port</tt>;       /* second 16 bits of L4 header */
                                   /* such as TCP destination port */
    <tt>bcm_gport_t</tt> <tt>source_port</tt>;       /* source port */
    uint32      <tt>start_timestamp</tt>;
    uint32      <tt>last_timestamp</tt>;
    uint32      <tt>byte_count</tt>;
    uint32      <tt>pkt_count</tt>;
    uint32      ttl;               /* TTL value of the first packet. */
    uint32      <tt>tcp_flags</tt>;         /* TCP flags. */
    <tt>bcm_gport_t</tt> <tt>dest_port</tt>;         /* Destination. */
    <tt>bcm_vlan_t</tt>  <tt>egress_vlan</tt>;       /* Egress VLAN. */
    <tt>bcm_multicast_t</tt> <tt>dest_multicast</tt>; /* Destination multicast group. */
} <tt>bcm_ipfix_data_t</tt>;
</pre></blockquote><p>The following new ipfix config flag has been added to the <tt>bcm_ipfix_config_t</tt>
<h3>Table 40:   IPFIX Configuration Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td> <tt>BCM_IPFIX_CONFIG_KEY_SOURCE_PORT_OR_INTERFACE</tt>
 </td><td> For IP packets, collect information based on source port or interface
</td></tr></tbody></table><p><br><hr noshade><a name="knet"></a>
<h3>Section 5.3.7:   knet
</h3>
<p>The Network Interface Type is enhanced to support the following type
<h3>Table 41:   BCM KNET Network Interface Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>BCM_KNET_NETIF_T_TX_META_DATA</tt></td><td> Tx packets are sent using raw meta data as DMA descriptors
</td></tr></tbody></table><p>The Network Interface Flag is enhanced to support the following control
<h3>Table 42:   BCM KNET Network Interface Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>BCM_KNET_NETIF_F_RCPU_ENCAP</tt></td><td> Use RCPU encapsulation for packets that enter and exit this interface
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.7:  knet
</h3>
<a name=bcm_knet_netif_t_init></a>
<hr noshade>
<h2 class="api">
<tt>bcm_knet_netif_t_init</tt><br>
</h2>

<blockquote>
Initialize a <tt>bcm_knet_netif_t</tt> structure.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/knet.h&gt;
void 
bcm_knet_netif_t_init(
    bcm_knet_netif_t *netif);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>netif</tt></td><td>&nbsp;&nbsp;</td><td>
        (IN/OUT) Pointer to struct to be initialized
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Initialize a <tt>bcm_knet_netif_t</tt> structure.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_knet_filter_t_init></a>
<hr noshade>
<h2 class="api">
<tt>bcm_knet_filter_t_init</tt><br>
</h2>

<blockquote>
Initialize a <tt>bcm_knet_filter_t</tt> structure.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/knet.h&gt;
void 
bcm_knet_filter_t_init(
    bcm_knet_filter_t *filter);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>filter</tt></td><td>&nbsp;&nbsp;</td><td>
       (IN/OUT) Pointer to struct to be initialized
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Initialize a <tt>bcm_knet_filter_t</tt> structure.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<br><hr noshade><a name="l3"></a>
<h3>Section 5.3.8:   Layer 3 Management
</h3>
<p>A new define has been introduced to indicate an invalid ingress interface
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_L3_INGRESS_INTERFACE_INVALID</tt></td><td>  4095</td><td> Invalid L3 Ingress Interface
</td></tr></tbody></table><p>The <tt>bcm_l3_stat_t</tt> enumeration has been modified to include more values namely bcmL3StatInPackets and bcmL3StatInBytes
<blockquote><pre>typedef enum <tt>bcm_l3_stat_e</tt> {
    bcmL3StatOutPackets,
    bcmL3StatOutBytes,
    bcmL3StatDropPackets,
    bcmL3StatDropBytes
    bcmL3StatInPackets, 
    bcmL3StatInBytes 
} <tt>bcm_l3_stat_t</tt>;
</pre></blockquote><p><hr noshade>
<h3>APIs for Section 5.3.8:  Layer 3 Management
</h3>
<a name=bcm_l3_vrf_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_vrf_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given vrf.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_vrf_stat_id_get(
    int               unit,
    bcm_vrf_t         vrf,
    bcm_l3_vrf_stat_t stat,
    uint32            *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vrf</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Virtual router instance
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) stat counter id
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given vrf. 
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_vrf_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_vrf_stat_attach</tt><br>
</h2>

<blockquote>
Attach   counters entries to the given VRF.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_vrf_stat_attach(
    int       unit,
    bcm_vrf_t vrf
    uint32    stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vrf</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Virtual router instance
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counters entries to the given VRF.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_vrf_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_vrf_stat_detach</tt><br>
</h2>

<blockquote>
Detach   counters entries to the given VRF.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_vrf_stat_detach(
    int       unit,
    bcm_vrf_t vrf);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vrf</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Virtual router instance
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach   counters entries to the given VRF.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_vrf_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_vrf_stat_counter_get</tt><br>
</h2>

<blockquote>
Get L3 VRF counter value for specified VRF statistic type
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_vrf_stat_counter_get(
    int               unit,
    bcm_vrf_t         vrf,
    bcm_l3_vrf_stat_t stat,
    uint32            num_entries,
    uint32            *counter_indexes,
    bcm_stat_value_t  *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vrf</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Virtual router instance
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values for a single VRF 
Statistic value of the specified type.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_vrf_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_vrf_stat_counter_set</tt><br>
</h2>

<blockquote>
Set L3 VRF counter value for specified VRF statistic type
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_vrf_stat_counter_set(
    int               unit,
    bcm_vrf_t         vrf,
    bcm_l3_vrf_stat_t stat,
    uint32            num_entries,
    uint32            *counter_indexes,
    bcm_stat_value_t  *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vrf</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Virtual router instance
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set counter statistic values for a single VRF statistic value 
of the specified type.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_egress_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_egress_stat_attach</tt><br>
</h2>

<blockquote>
Attach counters entries to the given L3 Egress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_egress_stat_attach(
    int      unit,
    bcm_if_t intf_id
    uint32   stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a egress L3 object
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counters entries to the given L3 Egress interface.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_egress_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_egress_stat_detach</tt><br>
</h2>

<blockquote>
Detach  counters entries to the given L3 Egress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_egress_stat_detach(
    int      unit,
    bcm_if_t intf_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a egress L3 object.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach counters entries to the given L3 Egress interface.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_egress_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_egress_stat_counter_get</tt><br>
</h2>

<blockquote>
Get the specified counter statistic for a L3 egress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_egress_stat_counter_get(
    int              unit,
    bcm_if_t         intf_id,
    bcm_l3_stat_t    stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a egress L3 object.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values for the specified L3 
egress.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_egress_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_egress_stat_counter_set</tt><br>
</h2>

<blockquote>
Set the specified counter statistic for a L3 egress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_egress_stat_counter_set(
    int              unit,
    bcm_if_t         intf_id,
    bcm_l3_stat_t    stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a egress L3 object.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set counter statistic values for the specified L3 egress.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_egress_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_egress_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given L3 Egress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_egress_stat_id_get(
    int           unit,
    bcm_if_t      intf_id,
    bcm_l3_stat_t stat,
    uint32        *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a egress L3 object.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) stat counter id
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given L3 Egress
interface.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_ingress_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_ingress_stat_attach</tt><br>
</h2>

<blockquote>
Attach counters entries to the given L3 ingress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_ingress_stat_attach(
    int      unit,
    bcm_if_t intf_id
    uint32   stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a L3 ingress object
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counters entries to the given L3 ingress Interface.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_ingress_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_ingress_stat_detach</tt><br>
</h2>

<blockquote>
Detach  counters entries to the given L3 ingress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_ingress_stat_detach(
    int      unit,
    bcm_if_t intf_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a L3 ingress object
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach counters entries to the given L3 ingress Interface.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_ingress_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_ingress_stat_counter_get</tt><br>
</h2>

<blockquote>
Get counter statistic values for a l3 interface object.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_ingress_stat_counter_get(
    int              unit,
    bcm_if_t         intf_id,
    bcm_l3_stat_t    stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a L3 ingress object
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values for a l3 interface 
object.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_ingress_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_ingress_stat_counter_set</tt><br>
</h2>

<blockquote>
Set counter statistic values for a l3 interface object.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_ingress_stat_counter_set(
    int              unit,
    bcm_if_t         intf_id,
    bcm_l3_stat_t    stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a L3 ingress object
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set counter statistic values for a l3 interface object.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_l3_ingress_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_l3_ingress_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given L3 ingress interface.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/l3.h&gt;
int
bcm_l3_ingress_stat_id_get(
    int           unit,
    bcm_if_t      intf_id,
    bcm_l3_stat_t stat,
    uint32        *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>intf_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Interface id of a L3 ingress object
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) stat counter id
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given L3 ingress
interface.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<br><hr noshade><a name="macsec"></a>
<h3>Section 5.3.9:   MAC Security
</h3>
<p>The following port capability flag values are added to the MACSEC port capabilities
<h3>Table 44:   bcm_macsec_port_capability_s flag values
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag value</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_MACSEC_CAPABILITY_FORMAT_FLOW_MATCH</tt></td><td> MACSEC port has flow match fields fixed per packet format by port configuration. If not set, it indicates a new way of flow matching whereby <tt>BCM_MACSEC_PACKET_FORMAT_ETH_II</tt> entries of <tt>flow_match</tt> arrays members in <tt>bcm_macsec_port_config_s</tt> structure will be used to represent all packet formats during port configuration using the port configuration API.
</td></tr><tr><td>  <tt>BCM_MACSEC_CAPABILITY_PRE_EXPIRE_PN</tt></td><td> MACSEC port has capability to configure PN value at which soft expiry will happen.
</td></tr><tr><td>  <tt>BCM_MACSEC_CAPABILITY_PN_HIGH_MATCH</tt></td><td> MACSEC port has capability to match high bytes of PN in the packet and take action based on that
</td></tr></tbody></table><p>The following flag has been added to Macsec secure association attributes
<h3>Table 45:   bcm_macsec_secure_assoc_t flags description table.
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_MACSEC_ASSOC_REPLAY_PROTECT</tt></td><td> Enables Replay protection for the secure association.
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.9:  MAC Security
</h3>
<a name=bcm_macsec_port_capability_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_macsec_port_capability_get</tt><br>
</h2>

<blockquote>
Get the port capability for the specified port.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/macsec.h&gt;

int bcm_macsec_port_capability_get(int unit, bcm_port_t port, 
                               bcm_macsec_port_capability_t *cap);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) BCM unit 
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>cap</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to MACSEC port capability structure
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API returns the MACSEC capability for the specified port.
The capability is returned in the user-supplied <tt>bcm_macsec_port_capability_t</tt> structure.
<blockquote><pre>typedef struct <tt>bcm_macsec_port_capability_s</tt> {
    uint32           flags;  

    /* Mask of supported flow actions as defined by flow api */
    uint32           <tt>flow_action</tt>;

    /* Minimum value of secure assoc per secure channel */
    uint32           <tt>min_secure_assoc_count</tt>;

    /* Maximum value of secure assoc per secure channel */
    uint32           <tt>max_secure_assoc_count</tt>;

    /* Maximum value of replay window size */
    uint32           <tt>max_replay_window_size</tt>;

} <tt>bcm_macsec_port_capability_t</tt>;

</pre></blockquote>Summary of various capabilities indicated using the flags member of the <tt>bcm_macsec_port_capability_s</tt> structure .
<h3>Table 46:   bcm_macsec_port_capability_s flag values
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag value</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_MACSEC_CAPABILITY_FORMAT_FLOW_MATCH</tt></td><td> MACSEC port has flow match fields fixed per packet format by port configuration. If not set, it indicates a new way of flow matching whereby <tt>BCM_MACSEC_PACKET_FORMAT_ETH_II</tt> entries of <tt>flow_match</tt> arrays members in <tt>bcm_macsec_port_config_s</tt> structure will be used to represent all packet formats during port configuration using the port configuration API.
</td></tr><tr><td>  <tt>BCM_MACSEC_CAPABILITY_PRE_EXPIRE_PN</tt></td><td> MACSEC port has capability to configure PN value at which soft expiry will happen.
</td></tr><tr><td>  <tt>BCM_MACSEC_CAPABILITY_PN_HIGH_MATCH</tt></td><td> MACSEC port has capability to match high bytes of PN in the packet and take action based on that
</td></tr></tbody></table><h3>Table 47:   bcm_macsec_port_capability_s members
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>bcm_macsec_port_capability_t</tt> member</b></td><td><b> Description
</b></td></tr><tr><td>  flags</td><td> Bitmap of the flags from table above.
</td></tr><tr><td>  <tt>flow_action</tt></td><td> Mask of supported flow actions as defined by flow api
</td></tr><tr><td>  <tt>min_secure_assoc_count</tt></td><td> Minimum value of secure associations per secure channel
</td></tr><tr><td>  <tt>max_secure_assoc_count</tt></td><td> Maximum value of secure associations per secure channel
</td></tr><tr><td>  <tt>max_replay_window_size</tt></td><td> Maximum value of replay window size
</td></tr></tbody></table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
    <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<br><hr noshade><a name="mim"></a>
<h3>Section 5.3.10:   Mac-in-Mac
</h3>
<p>The <tt>bcm_mim_vpn_config_t</tt> structure is updated with the addition of <tt>policer_id</tt> member to enable the association of a policer with a MIM VPN. 
<blockquote><pre>typedef struct <tt>bcm_mim_vpn_config_s</tt> {
    uint32 flags;                   /* BCM_MIM_VPN_xxx. */
    <tt>bcm_mim_vpn_t</tt> vpn;              /* VPN id */
    int <tt>lookup_id</tt>;                  /* The I-SID value */
    uint16 <tt>match_service_tpid</tt>;      /* Incoming SD tag TPID */
    <tt>bcm_multicast_t</tt> <tt>broadcast_group</tt>; 
    <tt>bcm_multicast_t</tt> <tt>unknown_unicast_group</tt>; 
    <tt>bcm_multicast_t</tt> <tt>unknown_multicast_group</tt>; 
    <tt>bcm_policer_t</tt> <tt>policer_id</tt>;       /* Policer ID to be used */
} <tt>bcm_mim_vpn_config_t</tt>;

typedef <tt>bcm_mim_vpn_config_t</tt> <tt>bcmx_mim_vpn_config_t</tt>;

</pre></blockquote><p><br><hr noshade><a name="mpls"></a>
<h3>Section 5.3.11:   MPLS
</h3>
<p>A new control flag <tt>BCM_MPLS_PORT_ENTROPY_ENABLE</tt> is added to the MPLS Port flags to enable MPLS entropy
<h3>Table 48:   MPLS Port Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td> <tt>BCM_MPLS_PORT_ENTROPY_ENABLE</tt>
 </td><td> Enable MPLS Entropy Label for L2-VPN.
</td></tr></tbody></table><p>A new control flag member <tt>BCM_MPLS_SWITCH_P2MP</tt> has been added to the structure <tt>bcm_mpls_tunnel_switch_t</tt>
<h3>Table 49:   MPLS Tunnel Switch Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td> <tt>BCM_MPLS_SWITCH_P2MP</tt>
</td><td> Indicates P2MP Label.
</td></tr></tbody></table><p>The <tt>bcm_mpls_vpn_config_t</tt> has a new member "<tt>mc_group</tt>" to associate a L3 multicast group with a MPLS VPN.
<blockquote><pre>typedef struct <tt>bcm_mpls_tunnel_switch_s</tt> {
    /* Ingress parameters */
    uint32                    flags;        /* <tt>BCM_MPLS_SWITCH_</tt>*              */
    <tt>bcm_mpls_label_t</tt>          label;        /* Incoming label value           */
    <tt>bcm_mpls_label_t</tt>          <tt>inner_label</tt>;  /* Incoming inner label (for 
                                             *  BCM56601 type of devices only)
                                             */
    <tt>bcm_gport_t</tt>               port;         /* Incoming port                  */
    <tt>bcm_mpls_switch_action_t</tt>  action;       /* MPLS label action              */
    <tt>bcm_multicast_t</tt>           <tt>mc_group</tt>;     /* P2MP Multicast group           */
    int                       <tt>exp_map</tt>;      /* EXP-map ID                     */
    int                       <tt>int_pri</tt>;      /* Internal priority              */
    <tt>bcm_policer_t</tt>             <tt>policer_id</tt>;   /* Policer ID to be associated with the
                                             *  incoming label. 
                                             */
    <tt>bcm_vpn_t</tt>                 vpn;          /* L3 VPN used if action is POP   */

    /* Egress parameters */
    <tt>bcm_mpls_egress_label_t</tt>   <tt>egress_label</tt>; /* Outgoing label info            */
    <tt>bcm_if_t</tt>                  <tt>egress_if</tt>;    /* Outgoing egress object         */   
} <tt>bcm_mpls_tunnel_switch_t</tt>;

typedef <tt>bcm_mpls_tunnel_switch_t</tt> <tt>bcmx_mpls_tunnel_switch_t</tt>;
</pre></blockquote><p><hr noshade>
<h3>APIs for Section 5.3.11:  MPLS
</h3>
<a name=bcm_mpls_label_stat_enable_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_label_stat_enable_set</tt><br>
</h2>

<blockquote>
Enable/disable statistics collection for MPLS label or MPLS gport
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int bcm_mpls_label_stat_enable_set(int unit, bcm_mpls_label_t label, 
                                   bcm_gport_t port, int enable);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>label</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS label
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) gport
</td></tr>
<tr><td class="arg" valign="top"><tt>enable</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Non-zero to enable counter collection, zero to
                    disable.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
For StrataXGS switches, this will initialize statistic collection
for the given (label, port) (enable=TRUE) or release the HW resources
used for the tracking the statistics (enable=FALSE).
If the port  parameter is an MPLS gport, then this is equivalent to the
<tt>bcm_port_stat_enable_set</tt> with the given gport.
Otherwise, this function will permit received packet statistics
collection by (label, port).
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_port_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_port_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given mpls gport and vpn.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_port_stat_id_get(
    int                  unit,
    bcm_vpn_t            vpn,
    bcm_gport_t          port,
    bcm_mpls_port_stat_t stat,
    uint32               *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vpn</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VPN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given mpls gport 
and vpn.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_label_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_label_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given mpls label and gport.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_label_stat_id_get(
    int                  unit,
    bcm_mpls_label_t     label,
    bcm_gport_t          port,
    bcm_mpls_port_stat_t stat,
    uint32               *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>label</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Label
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with mpls label and gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_port_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_port_stat_attach</tt><br>
</h2>

<blockquote>
Attach counters entries to the given mpls gport and vpn
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_port_stat_attach(
    int         unit,
    bcm_vpn_t   vpn,
    bcm_gport_t port,
    uint32      stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vpn</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VPN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counters entries to the given mpls gport and vpn.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_port_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_port_stat_detach</tt><br>
</h2>

<blockquote>
Detach counters entries to the given mpls port and vpn
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_port_stat_detach(
    int         unit,
    bcm_vpn_t   vpn,
    bcm_gport_t port);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vpn</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VPN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach counters entries to the given mpls port and vpn.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_port_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_port_stat_counter_get</tt><br>
</h2>

<blockquote>
Get counter statistic values for specific vpn and gport
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_port_stat_counter_get(
    int                  unit,
    bcm_vpn_t            vpn,
    bcm_gport_t          port,
    bcm_mpls_port_stat_t stat,
    uint32               num_entries,
    uint32               *counter_indexes,
    bcm_stat_value_t     *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vpn</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VPN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values for specific vpn and 
gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_port_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_port_stat_counter_set</tt><br>
</h2>

<blockquote>
Set counter statistic values for specific vpn and gport
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_port_stat_counter_set(
    int                  unit,
    bcm_vpn_t            vpn,
    bcm_gport_t          port,
    bcm_mpls_port_stat_t stat,
    uint32               num_entries,
    uint32               *counter_indexes,
    bcm_stat_value_t     *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vpn</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VPN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will counter statistic values for specific vpn and gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_label_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_label_stat_attach</tt><br>
</h2>

<blockquote>
Attach counters entries to the given mpls label and gport
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_label_stat_attach(
    int              unit,
    bcm_mpls_label_t label,
    bcm_gport_t      port,
    uint32           stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>label</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Label
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counters entries to the given mpls label and gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_label_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_label_stat_detach</tt><br>
</h2>

<blockquote>
Detach counters entries to the given mpls label and gport
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_label_stat_detach(
    int              unit,
    bcm_mpls_label_t label,
    bcm_gport_t      port);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>label</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Label
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach counters entries to the given mpls label and gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_label_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_label_stat_counter_get</tt><br>
</h2>

<blockquote>
Get counter statistic values for specific MPLS label and gport
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_label_stat_counter_get(
    int                  unit,
    bcm_mpls_label_t     label,
    bcm_gport_t          port,
    bcm_mpls_port_stat_t stat,
    uint32               num_entries,
    uint32               *counter_indexes,
    bcm_stat_value_t     *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>label</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Label
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values for specific MPLS 
label and gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_mpls_label_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_mpls_label_stat_counter_set</tt><br>
</h2>

<blockquote>
Set counter statistic values for specific MPLS label and gport
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/mpls.h&gt;
int
bcm_mpls_label_stat_counter_set(
    int                  unit,
    bcm_mpls_label_t     label,
    bcm_gport_t          port,
    bcm_mpls_port_stat_t stat,
    uint32               num_entries,
    uint32               *counter_indexes,
    bcm_stat_value_t     *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>label</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Label
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) MPLS Gport
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set counter statistic values for specific MPLS label and gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<br><hr noshade><a name="multicast"></a>
<h3>Section 5.3.12:   multicast
</h3>
<p>A new control flag <tt>BCM_MULTICAST_TYPE_EGRESS_OBJECT</tt> has been added to <tt>bcm_multicast_create</tt>.
<h3>Table 50:   Multicast Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td> <tt>BCM_MULTICAST_TYPE_EGRESS_OBJECT</tt>
 </td><td> Egress Object multicast group
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.12:  multicast
</h3>
<a name=bcm_multicast_egress_object_encap_get></a>
<a name=bcmx_multicast_egress_object_encap_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_multicast_egress_object_encap_get</tt><br>
<tt>bcmx_multicast_egress_object_encap_get</tt><br>
</h2>

<blockquote>
Get the multicast encapsulation ID for <tt>egress_object</tt> type replication.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/multicast.h&gt;
int bcm_multicast_egress_object_encap_get(int unit, bcm_multicast_t group,
                                 bcm_gport_t port,
                                 bcm_if_t intf,
                                 bcm_if_t *encap_id);

#include &lt;bcmx/multicast.h&gt;
int bcmx_multicast_egress_object_encap_get(bcm_multicast_t group, 
                                 bcm_gport_t port, 
                                 bcm_if_t intf,
                                 bcm_if_t *encap_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>group</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Multicast group ID
</td></tr>
<tr><td class="arg" valign="top"><tt>intf</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Egress Object ID
</td></tr>
<tr><td class="arg" valign="top"><tt>encap_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Encapsulation ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get the multicast encapsulation ID for Egress Object type replication. The
encapsulation ID is an opaque object passed in to <tt>bcm_multicast_egress_</tt>* APIs
when adding/removing ports to a multicast group.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<br><hr noshade><a name="oam"></a>
<h3>Section 5.3.13:   Operations and Management
</h3>
<p>The following OAM Endpoint Fault Flag Definitions are added
<h3>Table 51:   OAM Endpoint Fault Flag Definitions
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Fault flag</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_OAM_OPCODE_CCM_IN_HW</tt></td><td> Process CCMs in Hardware
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_CCM_COPY_TO_CPU</tt></td><td> Copy CCMs to CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_CCM_DROP</tt></td><td> Drop CCMs */
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LBM_IN_HW</tt></td><td> Process Loopback Messages in Hardware
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LBM_UC_COPY_TO_CPU</tt></td><td> Copy Unicast Loopback Messages to
CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LBM_UC_DROP</tt></td><td> Drop Unicast Loopback Messages to CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LBM_MC_COPY_TO_CPU</tt></td><td> Copy Multicast Loopback Messages to
CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LBM_MC_DROP</tt></td><td> Drop Multicast
Loopback Messaes
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LBR_COPY_TO_CPU</tt></td><td> Copy Loopback Reply to CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LBR_DROP</tt></td><td> Drop Loopback Reply
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LTM_COPY_TO_CPU</tt></td><td> Copy Linktrace Messages to CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LTM_DROP</tt></td><td> Drop Linktrace Messages
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LTR_COPY_TO_CPU</tt></td><td> Copy Linktrace Reply Messages to CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LTR_DROP</tt></td><td> Drop Linktrace Reply
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_LMEP_PKT_FWD</tt></td><td> Forward CCMs to remote device
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_OTHER_COPY_TO_CPU</tt></td><td> Copy other OAM opcode to CPU
</td></tr><tr><td>  <tt>BCM_OAM_OPCODE_OTHER_DROP</tt></td><td> Drop other OAM opcode
</td></tr></tbody></table><p>The following OAM Event Type enumerations are added to <tt>bcm_oam_event_type_t</tt>
<h3>Table 52:   OAM Event Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Event type</b></td><td><b> Description
</b></td></tr><tr><td>  bcmOAMEventEndpointInterfaceTestingToUp</td><td> A remote endpoint has reported its interface going from testing state to Up state
</td></tr><tr><td>  bcmOAMEventEndpointInterfaceUnknownToUp</td><td> A remote endpoint has reported its interface going from Unknown state to Up state
</td></tr><tr><td>  bcmOAMEventEndpointInterfaceDormantToUp</td><td> A remote endpoint has reported its interface going from Dormant state to Up state
</td></tr><tr><td>  bcmOAMEventEndpointInterfaceNotPresentToUp</td><td> A remote endpoint has reported its interface going from not present state to Up state
</td></tr><tr><td>  bcmOAMEventEndpointInterfaceLLDownToUp</td><td> A remote endpoint has reported its interface going from Lower link down state to Up state
</td></tr></tbody></table><p>The <tt>bcm_oam_endpoint_info_t</tt> is update to add four new members <tt>opcode_flags</tt>, <tt>cpu_qid</tt>, <tt>pkt_pri</tt> and <tt>int_pri</tt>.
<blockquote><pre>typedef struct <tt>bcm_oam_endpoint_info_s</tt> {
    uint32 flags; 
    <tt>bcm_oam_endpoint_t</tt> id; 
    <tt>bcm_oam_endpoint_type_t</tt> type;
    <tt>bcm_oam_group_t</tt> group;          /* The ID of the group to which this
                                       endpoint belongs */
    uint16 name;                    /* A unique identifier of the endpoint
                                       within the group.  This is equivalent to
                                       the MEPID in 802.1ag. */
    <tt>bcm_oam_endpoint_t</tt> <tt>local_id</tt>;    /* Used by remote endpoints only. */
    int level;                      /* This is equivalent to the Maintenance
                                       Domain Level (MDL) in 802.1ag. */
    int <tt>ccm_period</tt>;                 /* For local endpoints, this is the CCM
                                       transmission period in ms.  For remote
                                       endpoints, this is the period on which
                                       CCM timeout is based. */
    <tt>bcm_vlan_t</tt> vlan;                /* The VLAN associated with this endpoint */
    <tt>bcm_gport_t</tt> gport;              /* The gport associated with this endpoint */
    int <tt>trunk_index</tt>;                /* Static designated port for OAM.
                                       Used when the oam endpoint exists over Trunk */
    <tt>bcm_if_t</tt> intf;                  /* interface ID eg., mpls tunnel interface ID */
    <tt>bcm_mpls_label_t</tt> <tt>mpls_label</tt>;    /* The MPLS label associated with the 
                                       received packet from the Peer Endpoint */
    <tt>bcm_mpls_egress_label_t</tt> <tt>egress_label</tt>; /* The MPLS outgoing label information.
                                             Used for Local Endpoint transmit */
    <tt>bcm_mac_t</tt> <tt>dst_mac_address</tt>;      /* The destination MAC address associated
                                       with this endpoint */
    <tt>bcm_mac_t</tt> <tt>src_mac_address</tt>;      /* The source MAC address associated with
                                       this endpoint */
    uint8 <tt>pkt_pri</tt>;                  /* Egress marking for outgoing CCMs */
    <tt>bcm_cos_t</tt> <tt>int_pri</tt>;              /* Egress queuing for outgoing CCMs */
    uint8 <tt>cpu_qid</tt>;                      /* CPU queue for CCMs */
    uint8 <tt>pri_map</tt>[<tt>BCM_OAM_INTPRI_MAX</tt>];  /* Priority mapping for LM counter table */
    uint32 faults;                  /* Fault flags */
    uint32 <tt>persistent_faults</tt>;       /* Persistent fault flags */
    uint32 <tt>clear_persistent_faults</tt>; /* Persistent fault flags to clear on a
                                       'get' */
    int <tt>ing_map</tt>;                        /* Ingress QoS map profile */
    int <tt>egr_map</tt>;                        /* Egress QoS map profile */
    uint8 <tt>bfd_version</tt>;                  /* BFD Version */
    uint32 <tt>bfd_flags</tt>;                   /* BFD flag */
    <tt>bcm_oam_bfd_state_t</tt> <tt>bfd_state</tt>;      /* BFD state */
    <tt>bcm_oam_bfd_diag_code_t</tt> <tt>diag_code</tt>;  /* BFD Diagnostic code */
    int <tt>min_tx_interval</tt>;                /* BFD minimum transmit interval in
                                           microseconds */
    uint32 <tt>detect_mult</tt>;                 /* BFD timer Detection Multiplier */
    int <tt>min_rx_interval</tt>;                /* BFD minimum receive interval in
                                           microseconds */
    int <tt>min_echo_interval</tt>;              /* BFD echo rx interval in microseconds */
    uint32 <tt>my_discriminator_id</tt>;         /* BFD endpoint discriminator id */
    <tt>bcm_oam_bfd_auth_type_t</tt> <tt>auth_type</tt>;  /* BFD authentication type */
    uint8 <tt>auth_len</tt>;                     /* BFD authentication length */
    <tt>bcm_ip_t</tt> <tt>source_ip</tt>;                 /* BFD source IP address */
    <tt>bcm_ip_t</tt> <tt>dest_ip</tt>;                   /* BFD destination IP address */
    uint16 <tt>udp_src_port</tt>;                /* BFD source UDP port */
    uint16 <tt>udp_dest_port</tt>;               /* BFD destination UDP port */
} <tt>bcm_oam_endpoint_info_t</tt>;

typedef <tt>bcm_oam_endpoint_info_t</tt>  <tt>bcmx_oam_endpoint_info_t</tt>;
</pre></blockquote><p>The OAM Delay measurement Object <tt>bcm_oam_delay_t</tt> is updated to add 2 more members namely <tt>pkt_pri</tt> and <tt>int_pri</tt>.
<blockquote><pre>/* OAM delay object. */
typedef struct <tt>bcm_oam_delay_s</tt> {
    uint32 flags; 
    <tt>bcm_oam_endpoint_t</tt> id;          /* Endpoint ID of Local MEP. */
    <tt>bcm_oam_endpoint_t</tt> <tt>remote_id</tt>;   /* Endpoint ID of Remote MEP. */
    int period;                     /* Frequency of delay tx period in
                                     *  milliseconds.
                                     * Delay period of zero is used to denote
                                     * On-Demand measurement. Hence hardware
                                     * generated exactly one DM packet */
    <tt>bcm_time_spec_t</tt> delay;          /* Last recorded delay to remote peer. */
    uint8 <tt>pkt_pri</tt>;                  /* Egress marking for outgoing DM messages */
    <tt>bcm_cos_t</tt> <tt>int_pri</tt>;              /* Egress queuing for outgoing DM messages */
} <tt>bcm_oam_delay_t</tt>;
</pre></blockquote><p><br><hr noshade><a name="pkt"></a>
<h3>Section 5.3.14:   packet
</h3>
<p>The following Packet Timesync Flags are added 

<a name=pkt_timesync_flags_table></a>
<h3>Table 53:  Packet Timesync Flags Descriptions
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag</b></td><td> Description
</td></tr><tr><td> <tt>BCM_TX_TIMESYNC_ONE_STEP</tt>
 </td><td> One step timestamp
</td></tr><tr><td> <tt>BCM_TX_TIMESYNC_ONE_STEP_INGRESS_SIGN</tt>
 </td><td> Ingress timestamp sign bit
</td></tr><tr><td> <tt>BCM_TX_TIMESYNC_ONE_STEP_HDR_START_OFFSET</tt>
 </td><td> One step timestamp header offset
</td></tr><tr><td> <tt>BCM_TX_TIMESYNC_ONE_STEP_REGEN_UDP_CHKSUM</tt>
 </td><td> One step timestamp udp checksum
</td></tr></tbody></table><p><br><hr noshade><a name="policer"></a>
<h3>Section 5.3.15:   Policer Management
</h3>
<p>Two new Policer mode types are added to the enumeration <tt>bcm_policer_mode_t</tt>
<h3>Table 54:   Policer Modes
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  bcmPolicerModeCascade</td><td> Overflow Excessive token from the high priority bucket to low priority bucket.
</td></tr><tr><td>  bcmPolicerModeCoupledCascade</td><td> Overflow Excessive token from the high priority bucket to low priority bucket. Overflow Excessive token from lowest priority bucket to highest priority bucket.
</td></tr></tbody></table><p>The <tt>bcm_policer_group_mode_t</tt> is updated to include more Policer Group modes.
<h3>Table 55:   Policer Group Modes
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Mode</b></td><td><b> Description
</b></td></tr><tr><td>  bcmPolicerGroupModeDot1P</td><td> A set of 8 policers selected based on Vlan priority
</td></tr><tr><td>  bcmPolicerGroupModeIntPri</td><td> A set of 16 policers based on internal priority
</td></tr><tr><td>  bcmPolicerGroupModeIntPriCng</td><td> A set of 64 policers based on Internal priority and CNG
</td></tr><tr><td>  bcmPolicerGroupModeSvpType</td><td> A set of 2 policers based on SVP type
</td></tr><tr><td>  bcmPolicerGroupModeDscp</td><td> A set of 64 policers based on DSCP bits
</td></tr><tr><td>  bcmPolicerGroupModeCascade</td><td> User specified set of policers(max 8) wherein excess bandwidth can
                                                   overflow from High priority to low priority.
</td></tr><tr><td>  bcmPolicerGroupModeCascadeWithCoupling</td><td> User specified set of policers(max 4) wherein excess bandwidth can
                                                   overflow from High priority to low priority bucket and from lowest priority 
                                                   green bucket to highest priority yellow.
</td></tr></tbody></table><p>New Metering modes are added to enable Envelope metering 

<a name=pol_bcmPolicerEnvelopMeterFlagsxxx></a>
<h3>Table 56:   Envelop meter policer Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>BCM_POLICER_GLOBAL_METER_ENVELOP_MICRO_FLOW</tt></td><td> Envelop meter is a Micro meter
</td></tr><tr><td>  <tt>BCM_POLICER_GLOBAL_METER_ENVELOP_MACRO_FLOW</tt></td><td> Envelop meter is a Macro meter
</td></tr></tbody></table>
<a name=pol_bcmPolicerEnvelopMeterSharingModexxx></a>
<h3>Table 57:   Envelop meter sharing mode 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>BCM_POLICER_GLOBAL_METER_SHARING_MODE_MIN</tt></td><td> Envelop Macro meter MIN mode
</td></tr><tr><td>  <tt>BCM_POLICER_GLOBAL_METER_SHARING_MODE_MAX</tt></td><td> Envelop Macro meter MAX mode
</td></tr><tr><td>  <tt>BCM_POLICER_GLOBAL_METER_SHARING_MODE_MIN_MAX</tt></td><td> Envelop Macro meter MIN+MAX mode
</td></tr></tbody></table><p>The <tt>bcm_policer_config_t</tt> structure has two new members <tt>sharing_mode</tt> and <tt>action_id</tt> to indicate sharing modes in envelope metering and metering action entry for global service meters.
<blockquote><pre>typedef struct <tt>bcm_policer_config_s</tt> {
    uint32 flags;               /* BCM_POLICER_xxx */
    <tt>bcm_policer_mode_t</tt> mode;    /* Policer mode. */
    uint32 <tt>ckbits_sec</tt>;          /* Committed rate. */
    uint32 <tt>ckbits_burst</tt>;        /* Committed burst size. */
    uint32 <tt>pkbits_sec</tt>;          /* Peak rate. */
    uint32 <tt>pkbits_burst</tt>;        /* Peak burst size. */
    uint32 <tt>kbits_current</tt>;       /* Current size. */
    uint32 <tt>action_id</tt>;           /* Index of the global meter action entry */
    uint32 <tt>sharing_mode</tt>;        /* Meter sharing mode in case of Envelop - Macro meter */
                                /* See BCM_POLICER_GLOBAL_METER_SHARING_MODE_xxx       */
} <tt>bcm_policer_config_t</tt>;
</pre></blockquote><p>The <tt>bcm_policer_action_t</tt> structure enumerates the Global service meter actions
<blockquote><pre>typedef enum <tt>bcm_policer_action_e</tt> {
    bcmPolicerActionGpDrop,         /* Green priority drop */
    bcmPolicerActionGpDscpNew,      /* Green packet change DSCP value param0:
                                       New DSCP value */
    bcmPolicerActionGpEcnNew,       /* Green packet change ECN value param0: New
                                       ECN value */
    bcmPolicerActionGpPrioIntNew,   /* Green packet internal priority from an
                                       argument. param0: New priority */
    bcmPolicerActionGpCngNew,       /* Green packet change CNG to 00 */
    bcmPolicerActionGpVlanPrioNew,  /* Green packet change vlan priority.
                                       param0: New priority */
    bcmPolicerActionYpDrop,         /* Yellow priority drop */
    bcmPolicerActionYpDscpNew,      /* Yellow packet change DSCP value param0:
                                       New DSCP value */
    bcmPolicerActionYpEcnNew,       /* Yellow packet change ECN value param0:
                                       New ECN value */
    bcmPolicerActionYpPrioIntNew,   /* Yellow packet internal priority from an
                                       argument. param0: New priority */
    bcmPolicerActionYpCngNew,       /* Yellow packet change CNG to 01 */
    bcmPolicerActionYpVlanPrioNew,  /* Yellow packet change vlan priority.
                                       param0: New priority */
    bcmPolicerActionRpDrop,         /* Red priority drop */
    bcmPolicerActionRpDscpNew,      /* Red packet change DSCP value param0: New
                                       DSCP value */
    bcmPolicerActionRpEcnNew,       /* Red packet change ECN value param0: New
                                       ECN value */
    bcmPolicerActionRpPrioIntNew,   /* Red packet internal priority from an
                                       argument. param0: New priority */
    bcmPolicerActionRpCngNew,       /* Red packet change CNG to 11 */
    bcmPolicerActionRpVlanPrioNew   /* Red packet change vlan priority. param0:
                                       New priority */
} <tt>bcm_policer_action_t</tt>;

</pre></blockquote><p><hr noshade>
<h3>APIs for Section 5.3.15:  Policer Management
</h3>
<a name=bcm_policer_envelop_create></a>
<hr noshade>
<h2 class="api">
<tt>bcm_policer_envelop_create</tt><br>
</h2>

<blockquote>
Allocate a micro or a macro meter policer. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/policer.h&gt;
int 
bcm_policer_envelop_create(
    int unit, 
    uint32 flag,
    bcm_policer_t macro_flow_policer_id,
    bcm_policer_t *policer_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>flag</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Indicates whether MICRO meter or MACRO METER.
                         See pol_bcmPolicerEnvelopMeterFlagsxxx for
                         details.
</td></tr>
<tr><td class="arg" valign="top"><tt>macro_flow_policer_id</tt></td><td>&nbsp;&nbsp;</td><td>
                    (IN) Policer ID of the Macro flow policer already created.
                         This field is valid only if flag paramter is set to
                         <tt>BCM_POLICER_GLOBAL_METER_ENVELOP_MICRO_FLOW</tt>.
</td></tr>
<tr><td class="arg" valign="top"><tt>policer_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Policer Id created.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Creates a Micro or a Macro meter policer for an Envelop. 
In case of a micro meter creation, associates it with the Macro meter of the envelop.  
This API does not set up the policers in the hardware. <tt>bcm_policer_set</tt> must 
be called to setup the individual policers.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<a name=bcm_policer_action_create></a>
<hr noshade>
<h2 class="api">
<tt>bcm_policer_action_create</tt><br>
</h2>

<blockquote>
Create a new policer action
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/policer.h&gt;
int bcm_policer_action_create(
    int unit,
    uint32 *action_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
             (IN)  Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>action_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Action ID.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Create a new policer action.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<a name=bcm_policer_action_destroy></a>
<hr noshade>
<h2 class="api">
<tt>bcm_policer_action_destroy</tt><br>
</h2>

<blockquote>
Destroy a policer action
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/policer.h&gt;
int bcm_policer_action_create(
    int unit,
    uint32 action_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
             (IN)  Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>action_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Action ID to be destroyed
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Destroy a policer action. All the policers associated with the action should
be detached before an action can be destroyed.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<a name=bcm_policer_action_add></a>
<hr noshade>
<h2 class="api">
<tt>bcm_policer_action_add</tt><br>
</h2>

<blockquote>
Configure the action for an Action Id .
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/policer.h&gt;
int bcm_policer_action_add(
    int unit,
    uint32 action_id,
    bcm_policer_action_t action,
    uint32 param0);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
             (IN)  Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>action_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Action ID for which action needs to be set
</td></tr>
<tr><td class="arg" valign="top"><tt>action</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Policer Action to be configured.
                              See pol_bcmPolicerActionxxx  
</td></tr>
<tr><td class="arg" valign="top"><tt>param0</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Value for the action
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Configure an action in the action table corresponding to the Action Id specified.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<a name=bcm_policer_action_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_policer_action_get</tt><br>
</h2>

<blockquote>
Get the param value for an action in policer action table.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/policer.h&gt;
int bcm_policer_action_get(
    int unit,
    uint32 action_id,
    bcm_policer_action_t action,
    uint32 *param0);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
             (IN)  Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>action_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Action ID from which action needs to be got
</td></tr>
<tr><td class="arg" valign="top"><tt>action</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Policer Action to be retrieved
</td></tr>
<tr><td class="arg" valign="top"><tt>param0</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Configured value for the action
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get the configured value for an action in the action table corresponding to 
the Action Id specified.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<br><hr noshade><a name="port"></a>
<h3>Section 5.3.16:   PORT
</h3>
<p>The <tt>bcm_port_config_t</tt> is modified to add three new port bitmasks for TDM, PON and LLID port types
<h3>Table 58:   bcm_port_config_t bcmx_port_config_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Field</b></td><td><b>  BCM Type</b></td><td><b>  BCMX Type</b></td><td><b> Description
</b></td></tr><tr><td>  tdm</td><td>  <tt>bcm_pbmp_t</tt></td><td>  <tt>bcmx_lplist_t</tt></td><td> Bitmap or logical port list of all TDM ports
</td></tr><tr><td>  pon</td><td>  <tt>bcm_pbmp_t</tt></td><td>  <tt>bcmx_lplist_t</tt></td><td> Bitmap or logical port list of all PON ports
</td></tr><tr><td>  llid</td><td>  <tt>bcm_pbmp_t</tt></td><td>  <tt>bcmx_lplist_t</tt></td><td> Bitmap or logical port list of all LLID ports
</td></tr></tbody></table><p>A new PORT link status <tt>BCM_PORT_LINK_STATUS_REMOTE_FAULT</tt> is added  
<h3>Table 59:   Link Status States
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Status</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_PORT_LINK_STATUS_REMOTE_FAULT</tt></td><td> The port has detected a new remote fault condition. This status will only be indicated to a link notification handler enabled through <tt>bcm_linkscan_register</tt> . It is equivalent to link down status for all other purposes.
</td></tr></tbody></table><p>A new structure <tt>bcm_port_pon_info_t</tt> is added to abstract pon port properties
<h3>Table 60:   bcm_port_pon_info_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Field</b></td><td><b>  Type</b></td><td><b> Description
</b></td></tr><tr><td>  llid</td><td>  int</td><td> Logical link id for logical link
</td></tr><tr><td>  enable</td><td>  int</td><td> Port administration state for PON port, boolean value indicating disable (0) or enable (1)
</td></tr><tr><td>  linkstatus</td><td>  int</td><td> Link registering status for logical link, unregistered (0), registering (1) and registered (2). Or PON port status, LOS (0), unlock (1) and lock (2)
</td></tr><tr><td>  <tt>oam_discovery_status</tt></td><td>  int</td><td> OAM discovery status, boolean value indicating no discovery (0) and discovery (1)
</td></tr><tr><td>  loopback</td><td>  int</td><td> Loopback status for logical link, boolean value indicating normal (0) or loopback mode (1)
</td></tr><tr><td>  <tt>olt_mac_addr</tt></td><td>  <tt>bcm_mac_t</tt></td><td> OLT MAC address
</td></tr></tbody></table><p>The following Port control enumerations have been added to the <tt>bcm_port_control_t</tt>

<a name=PORT_CONTROL_v></a>
<h3>Table 61:   bcm_port_control_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  bcmPortControlPFCRefreshTime</td><td> Priority Flow Control refresh timer value (valid values: 0-0xffff)
</td></tr><tr><td>  bcmPortControlRegex</td><td> Enable/Disable Regex feature for IP traffic
</td></tr><tr><td>  bcmPortControlRegexTcp</td><td> Enable/Disable Regex feature for TCP traffic
</td></tr><tr><td>  bcmPortControlRegexUdp</td><td> Enable/Disable Regex feature for UDP traffic
</td></tr><tr><td>  bcmPortControlPonEncryptKeyExpiryTime</td><td> Set timeout value for encryption keys (unit: s)
</td></tr><tr><td>  bcmPortControlPonHoldoverState</td><td> Enable/Disable holdover state for EPON port (value 0: disable, value 1: enable)
</td></tr><tr><td>  bcmPortControlPonHoldoverTime</td><td> Set holdover time (unit: ms)
</td></tr><tr><td>  bcmPortControlPonMultiLlid</td><td> Set LLID number
</td></tr><tr><td>  bcmPortControlPonFecMode</td><td> Set FEC mode on Rx and Tx together (value 0: Rx/Tx off, value 1: Rx on and Tx off, value 2: Rx off and Tx on, value 3: Rx/Tx on, value 4: settable per link)
</td></tr><tr><td>  bcmPortControlPonUserTraffic</td><td> Enable/Disable user traffic for EPON port (value 0: disable, value 1: enable)
</td></tr><tr><td>  bcmPortControlEthPortAutoNegFailureAlarmState</td><td> Set alarm state of auto-negotiation failure (value 0: alarm report off, value 1: alarm report on)
</td></tr><tr><td>  bcmPortControlEthPortLosAlarmState</td><td> Set alarm state of port link los (value 0: alarm report off, value 1: alarm report on)
</td></tr><tr><td>  bcmPortControlEthPortFailureAlarmState</td><td> Set alarm state of port failure (value 0: alarm report off, value 1: alarm report on)
</td></tr><tr><td>  bcmPortControlEthPortLoopbackAlarmState</td><td> Set alarm state of port loopback (value 0: alarm report off, value 1: alarm report on)
</td></tr><tr><td>  bcmPortControlEthPortCongestionAlarmState</td><td> Set alarm state of port congestion (value 0: alarm report off, value 1: alarm report on)
</td></tr><tr><td>  bcmPortControlMplsEntropyHashSet</td><td> Select one of 2 sets of configuration for MPLS Entropy hashing (value=1/0)
</td></tr></tbody></table><p>To enable SAFC operation a new congestion type <tt>BCM_PORT_CONGESTION_CONFIG_SAFC</tt> has been added to the <tt>PORT_CONGESTION_FLAGS</tt> table

<a name=PORT_CONGESTION_FLAGS_table></a>
<h3>Table 62:   Port Congestion flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_PORT_CONGESTION_CONFIG_SAFC</tt></td><td> SAFC format
</td></tr></tbody></table><p>The <tt>bcm_port_congestion_config_t</tt> structure is modified to include configuration of vlan, pri and cfi
<h3>Table 63:   bcm_port_congestion_config_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Field</b></td><td><b>  BCM Type</b></td><td><b> Description
</b></td></tr><tr><td>  vlan</td><td>  <tt>bcm_vlan_t</tt></td><td> Vlan
</td></tr><tr><td>  pri</td><td>  uint8</td><td> Packet priority
</td></tr><tr><td>  cfi</td><td>  uint8</td><td> CFI
</td></tr></tbody></table><p>A new PHY control power type to disable auto power down mode is added
<h3>Table 64:    Power Control Values</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Flag</b></td><td><b> Meaning
</b></td></tr><tr><td>  <tt>BCM_PORT_PHY_CONTROL_POWER_AUTO_DISABLE</tt></td><td> Disable auto power down mode
</td></tr></tbody></table><p>The following port contol configurations are added to the <tt>bcm_port_phy_control_t</tt>

<a name=PORT_PHY_v></a>
<h3>Table 65:   bcm_port_phy_control_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_TX_POWER_TIME</tt>
 </td><td> Laser Transmit power shut down duration
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_TX_POWER_MODE</tt>
 </td><td> Laser Transmit power mode (value 0: active PON, value 1: standby PON, value 2: both)
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_TX_STATUS</tt>
 </td><td> Laser Transmit status (value 0: normal state, value 1: always on, value 2: disable)
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_RX_STATE</tt>
 </td><td> Laser Receive status (value 0: optical los, value 1: optical unlock, value 2: optical lock)
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_TRANCEIVER_TEMP</tt>
 </td><td> Transceiver temperature
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_SUPPLY_VOLTAGE</tt>
 </td><td> Transceiver supply voltage
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_TX_BIAS</tt>
 </td><td> Transceiver Transmit supply voltage
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_TX_POWER</tt>
 </td><td> Transceiver Transmit power
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_LASER_RX_POWER</tt>
 </td><td> Transceiver Receive power
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_HIGH_ALARM_STATE</tt>
 </td><td> Transceiver Receive power high alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_HIGH_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Receive power high alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_HIGH_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Receive power high alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_LOW_ALARM_STATE</tt>
 </td><td> Transceiver Receive power low alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_LOW_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Receive power low alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_LOW_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Receive power low alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_HIGH_ALARM_STATE</tt>
 </td><td> Transceiver Transmit power high alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_HIGH_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit power high alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_HIGH_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit power high alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_LOW_ALARM_STATE</tt>
 </td><td> Transceiver Transmit power low alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_LOW_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit power low alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_LOW_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit power low alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_HIGH_ALARM_STATE</tt>
 </td><td> Transceiver Transmit bias high alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_HIGH_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias high alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_HIGH_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias high alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_LOW_ALARM_STATE</tt>
 </td><td> Transceiver Transmit bias low alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_LOW_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias low alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_LOW_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias low alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_HIGH_ALARM_STATE</tt>
 </td><td> Transceiver supply voltage high alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_HIGH_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver supply voltage high alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_HIGH_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver supply voltage high alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_LOW_ALARM_STATE</tt>
 </td><td> Transceiver supply voltage low alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_LOW_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver supply voltage low alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_LOW_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver supply voltage low alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_HIGH_ALARM_STATE</tt>
 </td><td> Transceiver temperature high alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_HIGH_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver temperature high alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_HIGH_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver temperature high alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_LOW_ALARM_STATE</tt>
 </td><td> Transceiver temperature low alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_LOW_ALARM_REPORT_THRESHOLD</tt>
 </td><td> Transceiver temperature low alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_LOW_ALARM_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver temperature low alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_HIGH_WARNING_STATE</tt>
 </td><td> Transceiver Receive power high warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_HIGH_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Receive power high warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_HIGH_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Receive power high warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_LOW_WARNING_STATE</tt>
 </td><td> Transceiver Receive power low warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_LOW_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Receive power low warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_RX_POWER_LOW_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Receive power low warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_HIGH_WARNING_STATE</tt>
 </td><td> Transceiver Transmit power high warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_HIGH_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit power high warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_HIGH_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit power high warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_LOW_WARNING_STATE</tt>
 </td><td> Transceiver Transmit power low warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_LOW_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit power low warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_POWER_LOW_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit power low warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_HIGH_WARNING_STATE</tt>
 </td><td> Transceiver Transmit bias high warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_HIGH_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias high warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_HIGH_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias high warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_LOW_WARNING_STATE</tt>
 </td><td> Transceiver Transmit bias low warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_LOW_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias low warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TX_BIAS_LOW_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver Transmit bias low warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_HIGH_WARNING_STATE</tt>
 </td><td> Transceiver supply voltage high warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_HIGH_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver supply voltage high warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_HIGH_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver supply voltage high warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_LOW_WARNING_STATE</tt>
 </td><td> Transceiver supply voltage low warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_LOW_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver supply voltage low warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_VCC_LOW_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver supply voltage low warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_HIGH_WARNING_STATE</tt>
 </td><td> Transceiver temperature high warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_HIGH_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver temperature high warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_HIGH_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver temperature high warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_LOW_WARNING_STATE</tt>
 </td><td> Transceiver temperature low warning alarm state
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_LOW_WARNING_REPORT_THRESHOLD</tt>
 </td><td> Transceiver temperature low warning alarm report threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_PON_TEMP_LOW_WARNING_CLEAR_THRESHOLD</tt>
 </td><td> Transceiver temperature low warning alarm clear threshold
</td></tr><tr><td> <tt>BCM_PORT_PHY_CONTROL_DLL_POWER_AUTO</tt>
 </td><td> Enable / Disable DLL auto power down
</td></tr></tbody></table><p>The following TIMESYNC configuration Flags are added

<a name=TIMESYNC_CONFIGURATION_FLAGS_table></a>
<h3>Table 66:   Timesync configuration flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Configuration Flag</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_DEFAULT</tt></td><td> Timesync Configuration
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_MPLS</tt></td><td> Timesync MPLS configuration
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_ONE_STEP_TIMESTAMP</tt></td><td> One Step Timestamp configuration
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_TWO_STEP_TIMESTAMP</tt></td><td> Two Step Timestamp configuration
</td></tr></tbody></table><p>The following TIMESYNC packet types are added

<a name=TIMESYNC_PACKET_TYPES_table></a>
<h3>Table 67:   Timesync Packet Types
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Timesync Packet Type</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_SYNC</tt></td><td> Sync Event Packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_DELAY_REQ</tt></td><td> Delay Request Event Packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_PDELAY_REQ</tt></td><td> Pdelay Request Event Packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_PDELAY_RESP</tt></td><td> Pdelay Response Event Packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_FOLLOWUP</tt></td><td> Followup General Packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_DELAY_RESP</tt></td><td> Delay_resp General Packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_PDELAY_RESP_FOLLOWUP</tt></td><td> Pdelay resp followup packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_ANNOUNCE</tt></td><td> Announce general packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_SIGNALLING</tt></td><td> Signalling general packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_MANAGMENT</tt></td><td> Management general packet type
</td></tr><tr><td>  <tt>BCM_PORT_TIMESYNC_PKT_INVALID</tt></td><td> Invalid Packet
</td></tr></tbody></table><p>The <tt>bcm_port_config_t</tt> structure is added to abstract the timesync configuration

<a name=BCM_PORT_TIMESYNC_CONFIG_T></a>
<h3>Table 68:   bcm_port_timesync_config_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Field</b></td><td><b>  BCM Type</b></td><td><b> Description
</b></td></tr><tr><td>  flags</td><td>  uint32</td><td>  Timesync Configuration flags  <a href="#TIMESYNC_CONFIGURATION_FLAGS_table">Table 66:  Timesync configuration flags
</a> </td></tr><tr><td>  <tt>pkt_drop</tt></td><td>  uint32</td><td>  Pakcet Drop bitmap of event and general timesync packet types  <a href="#TIMESYNC_PACKET_TYPES_table">Table 67:  Timesync Packet Types
</a> </td></tr><tr><td>  <tt>pkt_tocpu</tt></td><td>  uint32</td><td>  CPU forward bitmap of event and general timesync packet types  <a href="#TIMESYNC_PACKET_TYPES_table">Table 67:  Timesync Packet Types
</a> </td></tr><tr><td>  <tt>mpls_min_label</tt></td><td>  int</td><td> Min label for Timesync over MPLS
</td></tr><tr><td>  <tt>mpls_max_label</tt></td><td>  int</td><td> Max label for Timesync over MPLS
</td></tr><tr><td>  <tt>src_mac_addr</tt></td><td>  <tt>bcm_mac_t</tt></td><td> Source mac address update for one step timestamp
</td></tr></tbody></table><blockquote><pre>typedef struct <tt>bcm_port_timesync_config_s</tt> {
    uint32    flags;            /* configuration flags   */
    uint32    <tt>pkt_drop</tt>;         /* Packet drop types     */
    uint32    <tt>pkt_tocpu</tt>;        /* Packet forward to cpu */
    int       <tt>mpls_min_label</tt>;   /* MPLS min label        */
    int       <tt>mpls_max_label</tt>;   /* MPLS max label        */
    <tt>bcm_mac_t</tt> <tt>src_mac_addr</tt>;     /* Source mac address    */
} <tt>bcm_port_timesync_config_t</tt>;
</pre></blockquote><p>The following Timesync configuration control flags are added to <tt>bcm_port_timesync_config_t</tt> 

<a name=PORT_PHY_TIMESYNC_VALID_FLAGS_table></a>
<h3>Table 69:   Port Phy timesync config structure field validity flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_FLAGS</tt></td><td> Flags field is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_ITPID</tt></td><td> itpid is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_OTPID</tt></td><td> otpid is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_OTPID2</tt></td><td> otpid2 is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_GMODE</tt></td><td> gmode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_FRAMESYNC_MODE</tt></td><td> framesync mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_SYNCOUT_MODE</tt></td><td> syncout mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_TS_DIVIDER</tt></td><td> ts divider mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_ORIGINAL_TIMECODE</tt></td><td> original timecode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_TX_TIMESTAMP_OFFSET</tt></td><td> tx timestamp offset is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_RX_TIMESTAMP_OFFSET</tt></td><td> rx timestamp offset is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_TX_SYNC_MODE</tt></td><td> tx sync mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_TX_DELAY_REQUEST_MODE</tt></td><td> tx delay request mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_TX_PDELAY_REQUEST_MODE</tt></td><td> tx pdelay request mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_TX_PDELAY_RESPONSE_MODE</tt></td><td> tx pdelay response mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_RX_SYNC_MODE</tt></td><td> rx sync mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_RX_DELAY_REQUEST_MODE</tt></td><td> rx delay request mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_RX_PDELAY_REQUEST_MODE</tt></td><td> rx pdelay request mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_RX_PDELAY_RESPONSE_MODE</tt></td><td> rx pdelay response mode is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_MPLS_CONTROL</tt></td><td> mpls control is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_RX_LINK_DELAY</tt></td><td> rx link delay is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_PHY_1588_DPLL_K1</tt> 1588_DPLL_K1</td><td> phy 1588 dpll k1 is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_PHY_1588_DPLL_K2</tt> 1588_DPLL_K2</td><td> phy 1588 dpll k2 is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_PHY_1588_DPLL_K3</tt> 1588_DPLL_K3</td><td> phy 1588 dpll k3 is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_PHY_1588_DPLL_LOOP_FILTER</tt> 1588_DPLL_LOOP_FILTER</td><td> phy 1588 dpll loop filter is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_PHY_1588_DPLL_REF_PHASE</tt> 1588_DPLL_REF_PHASE</td><td> phy 1588 dpll ref phase is valid
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_VALID_PHY_1588_DPLL_REF_PHASE_DELTA</tt> 1588_DPLL_REF_PHASE_DELTA</td><td> phy 1588 dpll ref phase delta is valid
</td></tr></tbody></table><p>The following timesync flag enables are defined

<a name=PORT_PHY_TIMESYNC_FLAGS_table></a>
<h3>Table 70:   Port Phy timesync flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_ENABLE</tt></td><td> Enable Time Synchronization Interface
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_CAPTURE_TS_ENABLE</tt></td><td> Enable Packet Timestamping
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_HEARTBEAT_TS_ENABLE</tt></td><td> Enable Heartbeat Timestamping
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_RX_CRC_ENABLE</tt></td><td> Enable CRC checking
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_8021AS_ENABLE</tt> 8021AS_ENABLE</td><td> Enable IEEE802.1AS mode
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_L2_ENABLE</tt></td><td> IEEE1588 over Layer 2
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_IP4_ENABLE</tt></td><td> IEEE1588 over IPV4 UDP
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_IP6_ENABLE</tt></td><td> IEEE1588 over IPV6 UDP
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_CLOCK_SRC_EXT</tt></td><td> Use external clock source (DPLL)
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_CLOCK_SRC_EXT_MODE</tt></td><td> DPLL mode, 0 - phase lock, 1 - frequency lock
</td></tr></tbody></table><p>The following Port Phy timesync MPLS flags have been defined

<a name=PORT_PHY_TIMESYNC_MPLS_FLAGS_table></a>
<h3>Table 71:   Port Phy timesync MPLS flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_MPLS_LABEL_IN</tt></td><td> MPLS label applies to ingress packets
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_MPLS_LABEL_OUT</tt></td><td> MPLS label applies to egress packets
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_MPLS_ENABLE</tt></td><td> Enable processing of MPLS 1588 packets
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_MPLS_ENTROPY_ENABLE</tt></td><td> Enable MPLS entropy on 1588 packets
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_MPLS_SPECIAL_LABEL_ENABLE</tt></td><td> Enable MPLS special label on 1588 packets
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_MPLS_CONTROL_WORD_ENABLE</tt></td><td> Enable MPLS control word on 1588 packets
</td></tr></tbody></table><p>The following Port PHY timesync load control flags have been defined

<a name=PORT_PHY_TIMESYNC_LOAD_CONTROL_FLAGS_table></a>
<h3>Table 72:   Port Phy timesync load control flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_TN_LOAD</tt></td><td> Load Tn upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_TN_ALWAYS_LOAD</tt></td><td> Always load Tn upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_TIMECODE_LOAD</tt></td><td> Load timecode upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_TIMECODE_ALWAYS_LOAD</tt></td><td> Always load timecode upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_SYNCOUT_LOAD</tt></td><td> Load syncout upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_SYNCOUT_ALWAYS_LOAD</tt></td><td> Always load syncout upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_NCO_DIVIDER_LOAD</tt></td><td> Load NCO divider upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_NCO_DIVIDER_ALWAYS_LOAD</tt></td><td> Always load NCO divider upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_LOCAL_TIME_LOAD</tt></td><td> Load local time upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_LOCAL_TIME_ALWAYS_LOAD</tt></td><td> Always load local time upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_NCO_ADDEND_LOAD</tt></td><td> Load NCO addend upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_NCO_ADDEND_ALWAYS_LOAD</tt></td><td> Always load NCO addend upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_LOOP_FILTER_LOAD</tt></td><td> Load DPLL loop filter upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_LOOP_FILTER_ALWAYS_LOAD</tt></td><td> Always load DPLL loop filter upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_REF_PHASE_LOAD</tt></td><td> Load DPLL ref phase upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_REF_PHASE_ALWAYS_LOAD</tt></td><td> Always load DPLL ref phase upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_REF_PHASE_DELTA_LOAD</tt></td><td> Load DPLL ref phase delta upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_REF_PHASE_DELTA_ALWAYS_LOAD</tt></td><td> Always load DPLL ref phase delta upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_K3_LOAD</tt></td><td> Load DPLL coefficient K3 upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_K3_ALWAYS_LOAD</tt></td><td> Always load DPLL coefficient K3 upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_K2_LOAD</tt></td><td> Load DPLL coefficient K2 upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_K2_ALWAYS_LOAD</tt></td><td> Always load DPLL coefficient K2 upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_K1_LOAD</tt></td><td> Load DPLL coefficient K1 upon framesync
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_DPLL_K1_ALWAYS_LOAD</tt></td><td> Always load DPLL coefficient K1 upon framesync
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_framesync_t</tt>:

<a name=PORT_PHY_TIMESYNC_FRAMESYNC_v></a>
<h3>Table 73:   bcm_port_phy_timesync_framesync_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  mode</td><td> framesync mode
</td></tr><tr><td>  <tt>length_threshold</tt></td><td> syncin threshold for framesync
</td></tr><tr><td>  <tt>event_offset</tt></td><td> event offset for framesync
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_syncout_mode_t</tt>:

<a name=PORT_PHY_TIMESYNC_SYNCOUT_MODE_v></a>
<h3>Table 74:   bcm_port_phy_timesync_syncout_mode_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  bcmPortPhyTimesyncSyncoutDisable</td><td> Do nothing
</td></tr><tr><td>  bcmPortPhyTimesyncSyncoutOneTime</td><td> Use syncin as the source
</td></tr><tr><td>  bcmPortPhyTimesyncSyncoutPulseTrain</td><td> CPU based framesync
</td></tr><tr><td>  bcmPortPhyTimesyncSyncoutPulseTrainWithSync</td><td> CPU based framesync
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_syncout_t</tt>:

<a name=PORT_PHY_TIMESYNC_SYNCOUT_v></a>
<h3>Table 75:   bcm_port_phy_timesync_syncout_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  mode;</td><td> syncout mode
</td></tr><tr><td>  <tt>pulse_1_length</tt>;</td><td> pulse 1 length in ns
</td></tr><tr><td>  <tt>pulse_2_length</tt>;</td><td> pulse 2 length in ns
</td></tr><tr><td>  interval;</td><td> interval in ns
</td></tr><tr><td>  <tt>syncout_ts</tt>;</td><td> syncout timestamp
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_mpls_label_t</tt>:

<a name=PORT_PHY_TIMESYNC_MPLS_LABEL_v></a>
<h3>Table 76:   bcm_port_phy_timesync_mpls_label_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  value</td><td> label value (<tt>bcm_mpls_label_t</tt>)
</td></tr><tr><td>  mask</td><td> label mask (<tt>bcm_mpls_label_t</tt>)
</td></tr><tr><td>  flags</td><td> MPLS label flags (<tt>BCM_PORT_PHY_TIMESYNC_MPLS_</tt>* flags)
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_mpls_control_t</tt>:

<a name=PORT_PHY_TIMESYNC_MPLS_CONTROL_v></a>
<h3>Table 77:   bcm_port_phy_timesync_mpls_control_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  flags</td><td> MPLS control flags
</td></tr><tr><td>  <tt>special_label</tt></td><td> special label value (<tt>bcm_port_phy_timesync_mpls_label_t</tt>)
</td></tr><tr><td>  labels</td><td> Timesync MPLS labels (<tt>bcm_port_phy_timesync_mpls_label_t</tt>)
</td></tr><tr><td>  size</td><td> Number of elements in label array
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.16:  PORT
</h3>
<a name=bcm_port_pon_info_get></a>
<a name=bcm_port_pon_info_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_pon_info_get</tt><br>
<tt>bcm_port_pon_info_set</tt><br>
</h2>

<blockquote>
Get or set multiple port characteristics for PON and link port.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int bcm_port_pon_info_get(int unit, bcm_port_t pon_port, bcm_port_pon_info_t *info);
int bcm_port_pon_info_set(int unit, bcm_port_t pon_port, bcm_port_pon_info_t *info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>pon_port</tt></td><td>&nbsp;&nbsp;</td><td>
Physical port to query or set pon port information on.
</td></tr>
<tr><td class="arg" valign="top"><tt>info</tt></td><td>&nbsp;&nbsp;</td><td>
Pointer to pon port information structure (see BCM_PORT_PON_INFO_t).
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get or set multiple port characteristics for PON and link port. Only "enable" and "loopback" can be configured in set api.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
    Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation failed
</td></tr>
</table></blockquote>
<a name=bcm_port_timesync_config_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_timesync_config_set</tt><br>
</h2>

<blockquote>
Set timesync configurations for the port.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int bcm_port_timesync_config_set(int unit, bcm_port_t port, int config_count, bcm_port_timesync_config_t *config_array);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
             (IN)BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN)Device or logical port number
</td></tr>
<tr><td class="arg" valign="top"><tt>config_count</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN)Count of timesync configurations
</td></tr>
<tr><td class="arg" valign="top"><tt>config_array</tt></td><td>&nbsp;&nbsp;</td><td>
  (IN)Pointer to timesync configurations (see  <a href="#BCM_PORT_TIMESYNC_CONFIG_T">Table 68:  <tt>bcm_port_timesync_config_t</tt>
</a> ) 
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set port and mpls timesync configurations for the port.  This function sets timesync configurations for the specified port, and for each mpls label range of that port. The timesync configurations must be setup as an array of configuration types with its related configurations. The port timesync configuraion must specify one-step or two-step timestamp type and its packet drop and cpu forward bitmaps. The MPLS timesync configurations must be setup with min and max mpls label range and its respective packet drop and cpu forward bitmaps. Note that BCM56640 supports one port timesync configuration and two mpls label range timesync configurations per port. BCM56440 supports only one port type timesync configuration. 
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
   Success
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
 Error
<blockquote><pre>typedef struct <tt>bcm_port_timesync_config_s</tt> {
    uint32    flags;            /* configuration flags   */
    uint32    <tt>pkt_drop</tt>;         /* Packet drop types     */
    uint32    <tt>pkt_tocpu</tt>;        /* Packet forward to cpu */
    int       <tt>mpls_min_label</tt>;   /* MPLS min label        */
    int       <tt>mpls_max_label</tt>;   /* MPLS max label        */
    <tt>bcm_mac_t</tt> <tt>src_mac_addr</tt>;     /* Source mac address    */
} <tt>bcm_port_timesync_config_t</tt>;
</pre></blockquote></td></tr>
</table></blockquote>
<a name=bcm_port_timesync_config_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_timesync_config_get</tt><br>
</h2>

<blockquote>
Get timesync configurations for the port.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int bcm_port_timesync_config_get(int unit, bcm_port_t port, int array_size, bcm_port_timesync_config_t *config_array, int *array_count);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
             (IN)BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN)Device or logical port number
</td></tr>
<tr><td class="arg" valign="top"><tt>array_size</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN)Required Count of timesync configurations
</td></tr>
<tr><td class="arg" valign="top"><tt>config_array</tt></td><td>&nbsp;&nbsp;</td><td>
  (IN/OUT)Pointer to timesync configurations (see  <a href="#BCM_PORT_TIMESYNC_CONFIG_T">Table 68:  <tt>bcm_port_timesync_config_t</tt>
</a> ) 
</td></tr>
<tr><td class="arg" valign="top"><tt>array_count</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT)Pointer to timesync configuration array count
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get port and mpls timesync configurations which is configured for the port. This function returns timesync configurations configured per port and its configuration array count.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
   Success
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
 Error
</td></tr>
</table></blockquote>
<a name=bcm_port_phy_timesync_config_t_init></a>
<a name=bcmx_port_phy_timesync_config_t_init></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_phy_timesync_config_t_init</tt><br>
<tt>bcmx_port_phy_timesync_config_t_init</tt><br>
</h2>

<blockquote>
Initialize a Port Configuration structure.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
void bcm_port_phy_timesync_config_t_init(bcm_port_phy_timesync_config_t *pconfig);

#include &lt;bcmx/port.h&gt;
void bcmx_port_phy_timesync_config_t_init(bcmx_port_phy_timesync_config_t *pconfig);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>pconfig</tt></td><td>&nbsp;&nbsp;</td><td>
    (OUT) Pointer to Port Configuration structure
                        to initialize.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Initializes a port configuration structure to default values. This
function should be used to initialize any Port Configuration structure
prior to filling it out and passing it to an API function. This ensures
that subsequent API releases may add new structure members to the
<tt>bcm_port_phy_timesync_config_t</tt> structure, and <tt>bcm_port_phy_timesync_config_t_init</tt> will initialize
the new members to correct default values.
</blockquote><h3>RETURNS</h3><blockquote>
None.
</blockquote>
<a name=bcm_port_phy_timesync_config_set></a>
<a name=bcm_port_phy_timesync_config_get></a>
<a name=bcmx_port_phy_timesync_config_set></a>
<a name=bcmx_port_phy_timesync_config_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_phy_timesync_config_set</tt><br>
<tt>bcm_port_phy_timesync_config_get</tt><br>
<tt>bcmx_port_phy_timesync_config_set</tt><br>
<tt>bcmx_port_phy_timesync_config_get</tt><br>
</h2>

<blockquote>
Set/Get the port configuration for the specified device or for all ports known to BCMX.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int bcm_port_phy_timesync_config_set(int unit, bcm_port_t port, bcm_port_phy_timesync_config_t *config);
int bcm_port_phy_timesync_config_get(int unit, bcm_port_t port, bcm_port_phy_timesync_config_t *config);

#include &lt;bcmx/port.h&gt;
int bcmx_port_phy_timesync_config_set(bcm_lport_t port, bcmx_port_phy_timesync_config_t *config);
int bcmx_port_phy_timesync_config_get(bcm_lport_t port, bcmx_port_phy_timesync_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
    BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 Pointer to port configuration structure populated on successful return.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_port_phy_timesync_config_get</tt> returns all known ports configured on the
specified device. <tt>bcmx_port_phy_timesync_config_get</tt> returns a structure containing
all ports known to the BCMX subsystem.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
  <a href="#BCM_PORT_PHY_TIMESYNC_CONFIG_t">Cross-Reference 136 (BCM_PORT_PHY_TIMESYNC_CONFIG_t)</a> describes the meaning of each field.

<a name=BCM_PORT_PHY_TIMESYNC_CONFIG_t></a>
<h3>Table 78:   bcm_port_phy_timesync_config_t bcmx_port_phy_timesync_config_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Field</b></td><td><b>  BCM Type</b></td><td><b>  BCMX Type</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>validity_mask</tt></td><td>  uint32</td><td>  uint32</td><td> Flags <tt>BCM_PORT_PHY_TIMESYNC_VALID_</tt>*
</td></tr><tr><td>  flags</td><td>  uint32</td><td>  uint32</td><td> Flags <tt>BCM_PORT_PHY_TIMESYNC_</tt>*
</td></tr><tr><td>  itpid</td><td>  uint16</td><td>  uint16</td><td> 1588 inner tag
</td></tr><tr><td>  otpid</td><td>  uint16</td><td>  uint16</td><td> 1588 outer tag
</td></tr><tr><td>  otpid2</td><td>  uint16</td><td>  uint16</td><td> 1588 outer tag2
</td></tr><tr><td>  gmode</td><td>  <tt>bcm_port_phy_timesync_global_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_global_mode_t</tt></td><td> Global mode
</td></tr><tr><td>  framesync</td><td>  <tt>bcm_port_phy_timesync_framesync_t</tt></td><td>  <tt>bcmx_port_phy_timesync_framesync_t</tt></td><td> Framesync parameters
</td></tr><tr><td>  syncout</td><td>  <tt>bcm_port_phy_timesync_syncout_t</tt></td><td>  <tt>bcmx_port_phy_timesync_syncout_t</tt></td><td> Syncout parameters
</td></tr><tr><td>  <tt>ts_divider</tt></td><td>  uint16</td><td>  uint16</td><td> Timestamp rate divider
</td></tr><tr><td>  <tt>original_timecode</tt></td><td>  <tt>bcm_time_spec_t</tt></td><td>  <tt>bcmx_time_spec_t</tt></td><td> Original timecode to be inserted
</td></tr><tr><td>  <tt>tx_timestamp_offset</tt></td><td>  uint32</td><td>  uint32</td><td> TX AFE delay in ns (per port)
</td></tr><tr><td>  <tt>rx_timestamp_offset</tt></td><td>  uint32</td><td>  uint32</td><td> RX AFE delay in ns (per port)
</td></tr><tr><td>  <tt>rx_link_delay</tt></td><td>  uint32</td><td>  uint32</td><td> RX Link delay in ns (per port)
</td></tr><tr><td>  <tt>tx_sync_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_egress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_egress_mode_t</tt></td><td> TX action for "sync" event messages (per port)
</td></tr><tr><td>  <tt>tx_delay_request_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_egress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_egress_mode_t</tt></td><td> TX action for "delay request" event messages (per port)
</td></tr><tr><td>  <tt>tx_pdelay_request_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_egress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_egress_mode_t</tt></td><td> TX action for "pdelay request" event message (per port)
</td></tr><tr><td>  <tt>tx_pdelay_response_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_egress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_egress_mode_t</tt></td><td> TX action for "pdelay response" event messages (per port)
</td></tr><tr><td>  <tt>rx_sync_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_ingress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_ingress_mode_t</tt></td><td> RX action for "sync" event messages (per port)
</td></tr><tr><td>  <tt>rx_delay_request_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_ingress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_ingress_mode_t</tt></td><td> RX action for "delay request" event messages (per port)
</td></tr><tr><td>  <tt>rx_pdelay_request_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_ingress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_ingress_mode_t</tt></td><td> RX action for "pdelay request" event messages (per port)
</td></tr><tr><td>  <tt>rx_pdelay_response_mode</tt></td><td>  <tt>bcm_port_phy_timesync_event_message_ingress_mode_t</tt></td><td>  <tt>bcmx_port_phy_timesync_event_message_ingress_mode_t</tt></td><td> RX action for "pdelay response" event messages (per port)
</td></tr><tr><td>  <tt>mpls_control</tt></td><td>  <tt>bcm_port_phy_timesync_mpls_control_t</tt></td><td>  <tt>bcmx_port_phy_timesync_mpls_control_t</tt></td><td> MPLS control
</td></tr><tr><td>  <tt>phy_1588_dpll_k1</tt></td><td>  uint16</td><td>  uint16</td><td> DPLL K1
</td></tr><tr><td>  <tt>phy_1588_dpll_k2</tt></td><td>  uint16</td><td>  uint16</td><td> DPLL K2
</td></tr><tr><td>  <tt>phy_1588_dpll_k3</tt></td><td>  uint16</td><td>  uint16</td><td> DPLL K3
</td></tr><tr><td>  <tt>phy_1588_dpll_loop_filter</tt></td><td>  uint16</td><td>  uint16</td><td> DPLL loop filter
</td></tr><tr><td>  <tt>phy_1588_dpll_ref_phase</tt></td><td>  uint16</td><td>  uint16</td><td> DPLL ref phase
</td></tr><tr><td>  <tt>phy_1588_dpll_ref_phase_delta</tt></td><td>  uint16</td><td>  uint16</td><td> DPLL ref phase delta
</td></tr></tbody></table>
<a name=PORT_PHY_TIMESYNC_INTERRUPT_FLAGS_table></a>
<h3>Table 79:   Port Phy timesync interrupt flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_TIMESTAMP_INTERRUPT</tt></td><td> Packet timestamp interrupt
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_FRAMESYNC_INTERRUPT</tt></td><td> Framesync interrupt
</td></tr></tbody></table>
<a name=PORT_PHY_TIMESYNC_INTERRUPT_MASK_FLAGS_table></a>
<h3>Table 80:   Port Phy timesync interrupt mask flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_TIMESTAMP_INTERRUPT_MASK</tt></td><td> Packet timestamp interrupt mask
</td></tr><tr><td>  <tt>BCM_PORT_PHY_TIMESYNC_FRAMESYNC_INTERRUPT_MASK</tt></td><td> Framesync interrupt mask
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_global_mode_t</tt>:

<a name=PORT_PHY_TIMESYNC_GLOBAL_MODE_v></a>
<h3>Table 81:   bcm_port_phy_timesync_global_mode_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  bcmPortPhyTimesyncModeFree</td><td> Free running mode
</td></tr><tr><td>  bcmPortPhyTimesyncModeSyncin</td><td> Use syncin as the source
</td></tr><tr><td>  bcmPortPhyTimesyncModeCpu</td><td> CPU based framesync
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_event_message_egress_mode_t</tt>:

<a name=PORT_PHY_TIMESYNC_EVENT_MESSAGE_EGRESS_MODE_v></a>
<h3>Table 82:   bcm_port_phy_timesync_event_message_egress_mode_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Value</b></td><td><b> Description
</b></td></tr><tr><td>  bcmPortPhyTimesyncEventMessageEgressModeNone</td><td> Do not modify
</td></tr><tr><td>  bcmPortPhyTimesyncEventMessageEgressModeUpdateCorrectionField</td><td> Update correction field (CF(existing) + TS(txsop))
</td></tr><tr><td>  bcmPortPhyTimesyncEventMessageEgressModeReplaceCorrectionFieldOrigin</td><td> Replace correction field with delay since framesync (TS(txsop) - TS(1pps)) and original timecode
</td></tr><tr><td>  bcmPortPhyTimesyncEventMessageEgressModeCaptureTimestamp</td><td> Capture TX timestamp
</td></tr></tbody></table>The feature types are enumerated as <tt>bcm_port_phy_timesync_event_message_ingress_mode_t</tt>:

<a name=PORT_PHY_TIMESYNC_EVENT_MESSAGE_INGRESS_MODE_v></a>
<h3>Table 83:   bcm_port_phy_timesync_event_message_ingress_mode_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Value</b></td><td><b> Description
</b></td></tr><tr><td>  bcmPortPhyTimesyncEventMessageIngressModeNone</td><td> Do not modify
</td></tr><tr><td>  bcmPortPhyTimesyncEventMessageIngressModeUpdateCorrectionField</td><td> Update correction field (CF(existing) - TS(rxsop))
</td></tr><tr><td>  bcmPortPhyTimesyncEventMessageIngressModeInsertTimestamp</td><td> Insert timestamp from 48 bit NCO (TS(rxsop))
</td></tr><tr><td>  bcmPortPhyTimesyncEventMessageIngressModeInsertDelaytime</td><td> Insert delay (TS(rxsop) - TS(1pps))
</td></tr></tbody></table></td></tr>
</table></blockquote>
<a name=bcm_port_control_phy_timesync_set></a>
<a name=bcm_port_control_phy_timesync_get></a>
<a name=bcmx_port_control_phy_timesync_set></a>
<a name=bcmx_port_control_phy_timesync_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_control_phy_timesync_set</tt><br>
<tt>bcm_port_control_phy_timesync_get</tt><br>
<tt>bcmx_port_control_phy_timesync_set</tt><br>
<tt>bcmx_port_control_phy_timesync_get</tt><br>
</h2>

<blockquote>
Retrieved the port configuration for the specified device or for all ports known to BCMX.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int bcm_port_control_phy_timesync_set(int unit, bcm_port_t port, bcm_port_control_phy_timesync_t type, uint64 value);
int bcm_port_control_phy_timesync_get(int unit, bcm_port_t port, bcm_port_control_phy_timesync_t type, uint64 *value);

#include &lt;bcmx/port.h&gt;
int bcm_port_control_phy_timesync_set(bcm_lport_t port, bcm_port_control_phy_timesync_t type, uint64 value);
int bcm_port_control_phy_timesync_get(bcm_lport_t port, bcm_port_control_phy_timesync_t type, uint64 *value);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
      BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 Device or logical port number
</td></tr>
<tr><td class="arg" valign="top"><tt>type</tt></td><td>&nbsp;&nbsp;</td><td>
 Port feature enumerator
</td></tr>
<tr><td class="arg" valign="top"><tt>value</tt></td><td>&nbsp;&nbsp;</td><td>
 value of the bit field in port table
<p>The feature types are enumerated as <tt>bcm_port_control_phy_timesync_t</tt>:

<a name=PORT_CONTROL_TIMESYNC_v></a>
<h3>Table 84:   bcm_port_control_phy_timesync_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td>  bcmPortControlPhyTimesyncCaptureTimestamp</td><td> Select packet capture timestamp
</td></tr><tr><td>  bcmPortControlPhyTimesyncHeartbeatTimestamp</td><td> Select heartbeat timestamp
</td></tr><tr><td>  bcmPortControlPhyTimesyncNCOAddend</td><td> Select addend for NCO freq control
</td></tr><tr><td>  bcmPortControlPhyTimesyncExtPhaseAdjust</td><td> Select phase adjustment
</td></tr><tr><td>  bcmPortControlPhyTimesyncFrameSync</td><td> Select "immediate framesync"
</td></tr><tr><td>  bcmPortControlPhyTimesyncLocalTime</td><td> Select the local clock
</td></tr></tbody></table></td></tr>
</table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
</td></tr>
</table></blockquote>
<a name=bcm_port_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given gport.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_stat_id_get(
    int              unit,
    bcm_gport_t      port,
    bcm_port_stat_t  stat,
    uint32           *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given gport.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_stat_attach</tt><br>
</h2>

<blockquote>
Attach  counter entries to the given gport.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_stat_attach(
    int         unit,
    bcm_gport_t port,
    uint32      stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counter entries to the given GPORT.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_stat_detach</tt><br>
</h2>

<blockquote>
Detach counter entries to the given gport.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_stat_detach(
    int         unit,
    bcm_gport_t port);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach   counter entries to the given GPORT.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_stat_counter_get</tt><br>
</h2>

<blockquote>
Get   counter values for specified gport based on port statistic type. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_stat_counter_get(
    int              unit,
    bcm_gport_t      port,
    bcm_port_stat_t  stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values for the given GPORT.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_stat_counter_set</tt><br>
</h2>

<blockquote>
Set   counter values for specified gport based on port statistic type. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_stat_counter_set(
    int              unit,
    bcm_gport_t      port,
    bcm_port_stat_t  stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set counter statistic values for the given GPORT.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_tdm_config_set></a>
<a name=bcm_port_tdm_config_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_tdm_config_set</tt><br>
<tt>bcm_port_tdm_config_get</tt><br>
</h2>

<blockquote>
Configure a TDM port attributes.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
#include &lt;bcm/ces.h&gt;
int 
bcm_port_tdm_config_set(
    int unit, 
    bcm_port_t tdm_port, 
    bcm_tdm_port_config_t *config);
int 
bcm_port_tdm_config_get(
    int unit, 
    bcm_port_t tdm_port, 
    bcm_tdm_port_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>tdm_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) TDM port number.
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) TDM port configuration.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
TDM ports are used exclusively by the CES service. This API configures the attributes associated with the TDM port but does not associate the port with a CES service. Associating a TDM port with a CES service is done using the CES APIs.
<blockquote><pre>/* TDM Port structure. */
typedef struct <tt>bcm_tdm_port_config_s</tt> {
    int <tt>e_protocol</tt>;                 /* E1/T1 circuit selection. */
    int <tt>b_structured</tt>;               /* Enable/Disbale structured or
                                       unstructured. */
    int <tt>b_octet_aligned</tt>;            /* Enable/Disable octet aligned mode. */
    int <tt>b_signaling_enable</tt>;         /* Enable/Disable CAS signaling. */
    int b_T1_D4_framing;            /* Enable/Disable T1 D4 framing. */
    uint32 <tt>e_clk_rx_select</tt>;         /* Select receive clock source */
    uint32 <tt>e_clk_tx_select</tt>;         /* Select transmit clock source. */
    uint32 <tt>n_cas_idle_timeslots</tt>;    /* CAS idle timeslot bit mask. */
    uint32 <tt>n_step_size</tt>;             /* Step size for BRG. */
    int <tt>b_txcrc</tt>;                    /* Enable/Disable Tx CRC. */
    int <tt>b_rxcrc</tt>;                    /* Enable/Disable Rx CRC. */
    int <tt>b_master</tt>;                   /* Enable/Disable Master. */
    uint32 <tt>n_signaling_format</tt>;      /* Signaling format, 0 = Clear Channel, 2 =
                                       T1 Four state, 3 = T1 16 state (ESF only) */
} <tt>bcm_tdm_port_config_t</tt>;
</pre></blockquote>The <tt>e_clk_rx_select</tt> field in the circuit config structure selects the receive clock source. The following sources are supported:
<h3>Table 85:   TDM Receive Clock Sources 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Source</b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_RX_CLK_SELECT_INDEPENDENT</td><td> Derive clock from received signal
</td></tr><tr><td>  bcm_CES_RX_CLK_SELECT_CES_SLAVE</td><td> Use clock provided by CES
</td></tr></tbody></table>The <tt>e_clk_tx_select</tt> field in the circuit config structure selects the transmit clock source. The following sources are supported:
<h3>Table 86:   TDM Transmit Clock Sources 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Source</b></td><td><b> Description
</b></td></tr><tr><td>  bcm_CES_TX_CLK_SELECT_LOOPBACK</td><td> Loopback the received clock
</td></tr><tr><td>  bcm_CES_TX_CLK_SELECT_CCLK</td><td> Use CES common clock
</td></tr><tr><td>  bcm_CES_TX_CLK_SELECT_INTERNAL_BRG</td><td> Use internal BRG
</td></tr></tbody></table></blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_tdm_cas_status_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_tdm_cas_status_get</tt><br>
</h2>

<blockquote>
Get TDM port CAS change bits.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_tdm_cas_status_get(
    int unit, 
    bcm_port_t tdm_port, 
    uint32 *cas_changed);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>tdm_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) TDM port number.
</td></tr>
<tr><td class="arg" valign="top"><tt>cas_changed</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) A bit per-timeslot indication of CAS change.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Returns a bit per-timeslot indication that the CAS signalling bits have changed for the specified port. If a bit is set the corresponding timeslot's signaling value has changed since the last call of this API.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_tdm_cas_abcd_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_tdm_cas_abcd_get</tt><br>
</h2>

<blockquote>
Get TDM port CAS ABCD bits.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_tdm_cas_abcd_get(
    int unit, 
    bcm_port_t tdm_port, 
    bcm_tdm_port_cas_status_t status, 
    uint8 *cas_abcd);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>tdm_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) TDM port number.
</td></tr>
<tr><td class="arg" valign="top"><tt>status</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Ingress or egress path.
</td></tr>
<tr><td class="arg" valign="top"><tt>cas_abcd</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Array of ABCD bit values for each timeslot.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Returns the ABCD signalling bits for each timeslot of the port. This may be done for both ingress and egress paths.
<h3>Table 87:   TDM CAS ABCD bits Path Direction 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Direction</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_TDM_PORT_CAS_STATUS_INGRESS</tt></td><td> Ingress path
</td></tr><tr><td>  <tt>BCM_TDM_PORT_CAS_STATUS_EGRESS</tt></td><td> Egress path
</td></tr></tbody></table></blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_port_tdm_ces_ports_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_port_tdm_ces_ports_get</tt><br>
</h2>

<blockquote>
Get associated CES ports.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/port.h&gt;
int 
bcm_port_tdm_ces_ports_get(
    int unit, 
    bcm_port_t tdm_port, 
    uint32 *n_ports, 
    uint32 ces_ports[BCM_CES_SLOT_MAX]);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>tdm_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) TDM port number
</td></tr>
<tr><td class="arg" valign="top"><tt>n_ports</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Number of CES services associated with the TDM port.
</td></tr>
<tr><td class="arg" valign="top"><tt>ces_ports</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Array of CES services associated with the TDM port.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Returns the number of CES services associated with the specified TDM port and the CES service numbers.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<br><hr noshade><a name="ptp"></a>
<h3>Section 5.3.17:   Precision Time Protocol
</h3>
<p>For devices which support them, the PTP API provide means for the control
and configuration of PTP stack instances.  
<p>The following PTP features are supported and configurable per PTP stack instance:
<p>PTP Data Types
<ul><li> <tt>bcm_ptp_time_type_t</tt> is an enumeration of PTP Time of Day types
</li><li> <tt>bcm_ptp_time_source_t</tt> is an enumeration of PTP time source type.
</li><li> <tt>bcm_ptp_clock_accuracy_t</tt> is an enumberation of PTP clock accuracy types
</li><li> <tt>bcm_ptp_cb_type_t</tt> is an enumeration of PTP callback types
</li><li> <tt>bcm_ptp_clock_type_t</tt> is an enumeration of PTP clock types
</li><li> <tt>bcm_ptp_tod_source_t</tt> is an enumeration of PTP TOD source
</li><li> <tt>bcm_ptp_tod_format_t</tt> is an enumeration of PTP TOD formats
</li><li> <tt>bcm_ptp_source_type_t</tt> is an enumeration of PTP Source types
</li><li> <tt>bcm_ptp_delay_mechanism_t</tt> is an enumeration of PTP Delay Mechanism types
</li></ul><h3>Table 88:   PTP Time Source Values 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  name</b></td><td><b>  value</b></td><td><b> Description
</b></td></tr><tr><td>  bcmPTPTimeSourceAtomicClock</td><td>  0x10</td><td> Atomic Clock
</td></tr><tr><td>  bcmPTPTimeSourceGPS</td><td>  0x20</td><td> Global Positioning System
</td></tr><tr><td>  bcmPTPTimeSourceTerRadio</td><td>  0x30</td><td> Terrestrial Radio
</td></tr><tr><td>  bcmPTPTimeSourcePtp</td><td>  0x40</td><td> PTP-based source
</td></tr><tr><td>  bcmPTPTimeSourceNTP</td><td>  0x50</td><td> Network Time Protocol source
</td></tr><tr><td>  bcmPTPTimeSourceHandSet</td><td>  0x60</td><td> Handset
</td></tr><tr><td>  bcmPTPTimeSourceOther</td><td>  0x90</td><td> Other timesource
</td></tr><tr><td>  bcmPTPTimeSourceInternalOsc</td><td>  0xA0</td><td> Internal Oscillator
</td></tr></tbody></table><h3>Table 89:   PTP Time Accuracy Values
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  name</b></td><td><b>  value</b></td><td><b> Description
</b></td></tr><tr><td>  bcmPTPClockAccuracy25ns</td><td>  0x0020</td><td> Time is accurate to with 25 ns
</td></tr><tr><td>  bcmPTPClockAccuracy100ns</td><td>  0x0021</td><td> Time is accurate to with 100 ns
</td></tr><tr><td>  bcmPTPClockAccuracy250ns</td><td>  0x0022</td><td> Time is accurate to with 250 ns
</td></tr><tr><td>  bcmPTPClockAccuracy1us</td><td>  0x0023</td><td> Time is accurate to with 1 us
</td></tr><tr><td>  bcmPTPClockAccuracy2500ns</td><td>  0x0024</td><td> Time is accurate to with 2500 ns
</td></tr><tr><td>  bcmPTPClockAccuracy10us</td><td>  0x0025</td><td> Time is accurate to with 10 us
</td></tr><tr><td>  bcmPTPClockAccuracy25us</td><td>  0x0026</td><td> Time is accurate to with 25 us
</td></tr><tr><td>  bcmPTPClockAccuracy100us</td><td>  0x0027</td><td> Time is accurate to with 100 us
</td></tr><tr><td>  bcmPTPClockAccuracy250us</td><td>  0x0028</td><td> Time is accurate to with 250 us
</td></tr><tr><td>  bcmPTPClockAccuracy1ms</td><td>  0x0029</td><td> Time is accurate to with 1 ms
</td></tr><tr><td>  bcmPTPClockAccuracy2500us</td><td>  0x002a</td><td> Time is accurate to with 2500 us
</td></tr><tr><td>  bcmPTPClockAccuracy10ms</td><td>  0x002b</td><td> Time is accurate to with 10 ms
</td></tr><tr><td>  bcmPTPClockAccuracy25ms</td><td>  0x002c</td><td> Time is accurate to with 25 ms
</td></tr><tr><td>  bcmPTPClockAccuracy100ms</td><td>  0x002d</td><td> Time is accurate to with 100 ms
</td></tr><tr><td>  bcmPTPClockAccuracy250ms</td><td>  0x002e</td><td> Time is accurate to with 250 ms
</td></tr><tr><td>  bcmPTPClockAccuracy1s</td><td>  0x002f</td><td> Time is accurate to with 1 s
</td></tr><tr><td>  bcmPTPClockAccuracy10s</td><td>  0x0030</td><td> Time is accurate to with 10 s
</td></tr><tr><td>  bcmPTPClockAccuracyL10s</td><td>  0x0031</td><td> Time is accurate to &gt; 10 s
</td></tr><tr><td>  bcmPTPClockAccuracyUnknown</td><td>  0x00FE</td><td> Time accuracy is unknown
</td></tr><tr><td>  bcmPTPClockAccuracyReserved</td><td>  0x00FF</td><td> Reserved
</td></tr></tbody></table><blockquote><pre>typedef enum <tt>bcm_ptp_cb_type_e</tt> {
    bcmPTPCallbackTypeManagement, 
    bcmPTPCallbackTypeEvent, 
    bcmPTPCallbackTypeSignal, 
    bcmPTPCallbackTypeFault, 
    bcmPTPCallbackCount 
} <tt>bcm_ptp_cb_type_t</tt>;

typedef enum <tt>bcm_ptp_clock_type_e</tt> {
    bcmPTPClockTypeOrdinary, 
    bcmPTPClockTypeBoundary, 
    bcmPTPClockTypeTransparent, 
    bcmPTPClockTypeCount 
} <tt>bcm_ptp_clock_type_t</tt>;

typedef enum <tt>bcm_ptp_tod_source_e</tt> {
    bcmPTPTODSourceNone, 
    bcmPTPTODSourceSerial, 
    bcmPTPTODSourceEthernet, 
    bcmPTPTODSourceMaster 
} <tt>bcm_ptp_tod_source_t</tt>;

typedef enum <tt>bcm_ptp_tod_format_e</tt> {
    bcmPTPTODFormatString, 
    bcmPTPTODFormatUBlox, 
    bcmPTPTODFormatChinaTcom, 
    bcmPTPTODFormatBCM 
} <tt>bcm_ptp_tod_format_t</tt>;

typedef enum <tt>bcm_ptp_source_type_e</tt> {
    bcmPTPSourceTypeFreeRunning, 
    bcmPTPSourceTypePTP, 
    bcmPTPSourceTypeGenericTimestamp, 
    bcmPTPSourceTypeGpsTimestamp, 
    bcmPTPSourceTypeSyncETimestamp, 
    bcmPTPSourceTypeT1Timestamp, 
    bcmPTPSourceTypeE1Timestamp 
} <tt>bcm_ptp_source_type_t</tt>;

typedef int <tt>bcm_ptp_timestamp_source_t</tt>;

typedef enum <tt>bcm_ptp_delay_mechanism_e</tt> {
    bcmPTPDelayMechanismEnd2End, 
    bcmPTPDelayMechanismPeer2Peer, 
    bcmPTPDelayMechansimDisabled 
} <tt>bcm_ptp_delay_mechanism_t</tt>;

typedef struct <tt>bcm_ptp_timestamp_s</tt> {
    uint64 seconds;     /* Seconds */
    uint32 nanoseconds; /* Nanoseconds */
} <tt>bcm_ptp_timestamp_t</tt>;

typedef struct <tt>bcm_ptp_external_stack_info_s</tt> {
    uint16 ethertype;                   /* RCPU ethertype */
    uint16 signature;                   /* RCPU signature */
    uint16 tpid;                        /* RCPU tpid */
    uint16 vlan;                        /* RCPU vlan */
    uint8 <tt>vlan_pri</tt>;                     /* VLAN priority. External Stack Processor Only. */
    uint16 <tt>reflected_ethertype</tt>;         /* RCPU reflected ethertype */
    <tt>bcm_mac_t</tt> <tt>switch_mac</tt>;               /* Switch MAC address */
    <tt>bcm_mac_t</tt> <tt>host_mac</tt>;                 /* Host MAC address. External Stack Processor Only. */
    <tt>bcm_mac_t</tt> <tt>top_mac</tt>;                  /* ToP stack MAC address. External Stack Processor Only. */
    <tt>bcm_ip_t</tt> <tt>host_ip_addr</tt>;              /* host IPv4 address. External Stack Processor Only. */
    <tt>bcm_ip_t</tt> <tt>top_ip_addr</tt>;               /* ToP IPv4 address. External Stack Processor Only. */
    <tt>bcm_port_t</tt> port;                    /* ToP port. External Stack Processor Only. */
    <tt>bcm_ptp_ext_stack_io_rd_fn_ptr</tt> <tt>read_fn</tt>; /* PCI Read Function */
    <tt>bcm_ptp_ext_stack_io_wr_fn_ptr</tt> <tt>write_fn</tt>; /* PCI Write Function */
    void *cookie;                       /* User-specified identifer for external stack */
} <tt>bcm_ptp_external_stack_info_t</tt>;

typedef struct <tt>bcm_ptp_stack_info_s</tt> {
    uint32 flags;                       /* control flags */
    <tt>bcm_ptp_stack_id_t</tt> id;              /* PTP stack identifier */
    <tt>bcm_ptp_external_stack_info_t</tt> *<tt>ext_stack_info</tt>; /* External Stack Info. External Stack
                                           Processor Only. */
} <tt>bcm_ptp_stack_info_t</tt>;

typedef struct <tt>bcm_ptp_clock_quality_s</tt> {
    uint8 <tt>clock_class</tt>;                  /* Clock Class */
    <tt>bcm_ptp_clock_accuracy_t</tt> <tt>clock_accuracy</tt>; /* Clock Accuracy */
    uint16 <tt>offset_scaled_log_variance</tt>;  /* Offset Scaled Log Variance */
} <tt>bcm_ptp_clock_quality_t</tt>;

typedef struct <tt>bcm_ptp_port_identity_s</tt> {
    <tt>bcm_ptp_clock_identity_t</tt> <tt>clock_identity</tt>; /* Clock Identity */
    uint16 <tt>port_number</tt>;                 /* Port Number */
} <tt>bcm_ptp_port_identity_t</tt>;

typedef struct <tt>bcm_ptp_clock_info_s</tt> {
    uint32 flags;                       /* Flags */
    int <tt>clock_num</tt>;                      /* Clock Identifier (numeric) */
    <tt>bcm_ptp_clock_identity_t</tt> <tt>clock_identity</tt>; /* Clock Identity */
    <tt>bcm_ptp_clock_type_t</tt> type;          /* PTP Clock Type */
    uint16 <tt>num_ports</tt>;                   /* Number of Ports */
    uint8 class;                        /* Clock Class */
    uint8 <tt>domain_number</tt>;                /* Domain Number */
    uint16 <tt>scaled_log_variance</tt>;         /* Scaled Log Variance */
    uint8 priority1;                    /* Priority 1 */
    uint8 priority2;                    /* Priority 2 */
    uint8 slaveonly;                    /* Slave Only */
    uint8 twostep;                      /* Two Step */
    uint8 <tt>tc_primary_domain</tt>;            /* Transparent Clock Primary Domain */
    <tt>bcm_ptp_delay_mechanism_t</tt> <tt>tc_delay_mechanism</tt>; /* Transparent Clock Delay Mechanism */
    uint8 <tt>announce_receipt_timeout_minimum</tt>; /* Announce Receipt Timeout Minimum */
    uint8 <tt>announce_receipt_timeout_default</tt>; /* Announce Receipt Timeout Default */
    uint8 <tt>announce_receipt_timeout_maximum</tt>; /* Announce Receipt Timeout Maximum */
    int <tt>log_announce_interval_minimum</tt>;  /* Log Announce Interval Minimum */
    int <tt>log_announce_interval_default</tt>;  /* Log Announce Interval Default */
    int <tt>log_announce_interval_maximum</tt>;  /* Log Announce Interval Maximum */
    int <tt>log_sync_interval_minimum</tt>;      /* Log Sync Interval Minimum */
    int <tt>log_sync_interval_default</tt>;      /* Log Sync Interval Default */
    int <tt>log_sync_interval_maximum</tt>;      /* Log Sync Interval Maximum */
    int <tt>log_min_delay_req_interval_minimum</tt>; /* Log min PDelay request interval or
                                           log min delay request interval minimum */
    int <tt>log_min_delay_req_interval_default</tt>; /* Log min PDelay request interval or
                                           log min delay request interval default */
    int <tt>log_min_delay_req_interval_maximum</tt>; /* Log min PDelay request interval or
                                           log min delay request interval maximum */
    uint8 <tt>domain_number_minimum</tt>;        /* Domain Number minimum */
    uint8 <tt>domain_number_default</tt>;        /* Domain Number default */
    uint8 <tt>domain_number_maximum</tt>;        /* Domain Number maximum */
    uint8 <tt>priority1_minimum</tt>;            /* Priority 1 minimum */
    uint8 <tt>priority1_default</tt>;            /* Priority 1 default */
    uint8 <tt>priority1_maximum</tt>;            /* Priority 1 maximum */
    uint8 <tt>priority2_minimum</tt>;            /* Priority 2 minimum */
    uint8 <tt>priority2_default</tt>;            /* Priority 2 default */
    uint8 <tt>priority2_maximum</tt>;            /* Priority 2 maximum */
    uint8 <tt>number_virtual_interfaces</tt>;    /* Number of virtual interfaces */
} <tt>bcm_ptp_clock_info_t</tt>;

typedef struct <tt>bcm_ptp_default_dataset_s</tt> {
    uint32 flags;                       /* Flags */
    uint16 <tt>number_ports</tt>;                /* Number of ports */
    uint8 priority1;                    /* Priority 1 */
    uint8 priority2;                    /* Priority 2 */
    uint8 <tt>domain_number</tt>;                /* Domain number */
    <tt>bcm_ptp_clock_quality_t</tt> <tt>clock_quality</tt>; /* Clock quality */
    <tt>bcm_ptp_clock_identity_t</tt> <tt>clock_identity</tt>; /* Clock Identity */
} <tt>bcm_ptp_default_dataset_t</tt>;

typedef struct <tt>bcm_ptp_current_dataset_s</tt> {
    uint16 <tt>steps_removed</tt>;       /* Steps Removed from Master */
    uint64 <tt>offset_from_master</tt>;  /* Offset from Master in nanoseconds */
    uint64 <tt>mean_path_delay</tt>;     /* Mean Path Delay in nanoseconds */
} <tt>bcm_ptp_current_dataset_t</tt>;

typedef struct <tt>bcm_ptp_parent_dataset_s</tt> {
    <tt>bcm_ptp_port_identity_t</tt> <tt>parent_port_identity</tt>; /* Parent Port Identity */ uint8 ps;/* ps */
    uint16 <tt>observed_parent_offset_scaled_log_variance</tt>; /* Observed Parent Offset Scaled Log Variance */
    uint32 <tt>observed_parent_clock_phase_change_rate</tt>; /* Observed Parent Clock Phase Change Rate */
    uint8 <tt>grandmaster_priority1</tt>;        /* Grandmaster Priority 1 */
    <tt>bcm_ptp_clock_quality_t</tt> <tt>grandmaster_clock_quality</tt>; /* Grandmaster Clock quality */
    uint8 <tt>grandmaster_priority2</tt>;        /* Grandmaster Priority 2 */
    <tt>bcm_ptp_clock_identity_t</tt> <tt>grandmaster_identity</tt>; /* Grandmaster Identity */
} <tt>bcm_ptp_parent_dataset_t</tt>;

typedef struct <tt>bcm_ptp_transparent_clock_default_dataset_s</tt> {
    <tt>bcm_ptp_clock_identity_t</tt> <tt>clock_identity</tt>; /* Clock Identity */
    uint16 <tt>number_ports</tt>;                /* Number Of Ports */
    uint8 <tt>delay_mechanism</tt>;              /* Delay Mechanism */
    uint8 <tt>primary_domain</tt>;               /* Primary Domain */
} <tt>bcm_ptp_transparent_clock_default_dataset_t</tt>;

typedef struct <tt>bcm_ptp_transparent_clock_port_dataset_s</tt> {
    <tt>bcm_ptp_port_identity_t</tt> <tt>port_identity</tt>; /* Clock Port identity */
    uint8 faulty;                       /* Faulty */
    int <tt>log_min_pdelay_req_interval</tt>;    /* Log Minimun Peer Delay Interval */
    uint64 <tt>peer_mean_path_delay</tt>;        /* Peer Mean Path Delay in Nanoseconds */
} <tt>bcm_ptp_transparent_clock_port_dataset_t</tt>;

typedef struct <tt>bcm_ptp_utc_s</tt> {
    uint16 <tt>utc_offset</tt>;  /* Current UTC offset */
    uint8 leap61;       /* 1-&gt; Plus one second, 0-&gt; No leap second. */
    uint8 leap59;       /* 1-&gt; Minus one second, 0-&gt; No leap second. */
    uint8 <tt>utc_valid</tt>;    /* 1-&gt; Correct offset to UTC, 0-&gt; No sync to UTC. */
} <tt>bcm_ptp_utc_t</tt>;

typedef struct <tt>bcm_ptp_trace_s</tt> {
    uint8 <tt>time_traceable</tt>;       /* Time traceable */
    uint8 <tt>frequency_traceable</tt>;  /* Frequency traceable */
} <tt>bcm_ptp_trace_t</tt>;

typedef struct <tt>bcm_ptp_timescale_s</tt> {
    <tt>bcm_ptp_time_source_t</tt> <tt>time_source</tt>;  /* PTP time source */
    uint8 <tt>ptp_timescale</tt>;                /* PTP timescale */
} <tt>bcm_ptp_timescale_t</tt>;

typedef struct <tt>bcm_ptp_time_properties_s</tt> {
    <tt>bcm_ptp_utc_t</tt> <tt>utc_info</tt>;             /* UTC properties */
    <tt>bcm_ptp_trace_t</tt> <tt>trace_info</tt>;         /* Trace properties */
    <tt>bcm_ptp_timescale_t</tt> <tt>timescale_info</tt>; /* Timescale properties */
} <tt>bcm_ptp_time_properties_t</tt>;

typedef enum <tt>bcm_ptp_protocol_e</tt> {
    bcmPTPUDPIPv4 = 1,  /* Ethernet / UDP / IPv4 */
    bcmPTPUDPIPv6 = 2,  /* Ethernet / UDP / IPv6 */
    bcmPTPIEEE8023 = 3  /* Ethernet Layer 2 */
} <tt>bcm_ptp_protocol_t</tt>;

typedef enum <tt>bcm_ptp_port_type_e</tt> {
    bcmPTPPortTypeStandard = 1,     /* Master-or-Slave port type */
    bcmPTPPortTypeMasterOnly = 2,   /* Master-only port type */
    bcmPTPPortTypeSlaveOnly = 3     /* Slave-only port type */
} <tt>bcm_ptp_port_type_t</tt>;

typedef enum <tt>bcm_ptp_timestamp_mechanism_e</tt> {
    bcmPTPToPTimestamps = 1,            /* Internal ToP timestamps */
    bcmPTPRCPUTimestamps = 2,           /* Timestamps from switch */
    bcmPTPPhyCorrectionTimestamps = 3   /* Timestamps from PHY */
} <tt>bcm_ptp_timestamp_mechanism_t</tt>;

typedef struct <tt>bcm_ptp_clock_port_address_s</tt> {
    <tt>bcm_ptp_protocol_t</tt> <tt>addr_type</tt>;       /* Clock Port address type */
    uint8 address[<tt>BCM_PTP_MAX_NETW_ADDR_SIZE</tt>]; /* Address */
} <tt>bcm_ptp_clock_port_address_t</tt>;

typedef struct <tt>bcm_ptp_clock_port_info_s</tt> {
    <tt>bcm_ptp_clock_port_address_t</tt> <tt>port_address</tt>; /* Clock Port address */
    <tt>bcm_mac_t</tt> mac;                      /* MAC address */
    uint8 <tt>multicast_l2_size</tt>;            /* Multicast L2 header size (octets) */
    uint8 <tt>multicast_l2</tt>[<tt>BCM_PTP_MAX_L2_HEADER_LENGTH</tt>]; /* Multicast L2 header */
    uint8 <tt>multicast_pdelay_l2_size</tt>;     /* Multicast Peer-Delay L2 header size (octets) */
    uint8 <tt>multicast_pdelay_l2</tt>[<tt>BCM_PTP_MAX_L2_HEADER_LENGTH</tt>]; /* Multicast Peer-Delay L2 header */
    uint8 <tt>multicast_tx_enable</tt>;          /* Multicast transmit enable */
    <tt>bcm_ptp_port_type_t</tt> <tt>port_type</tt>;      /* Port Type */
    uint8 <tt>announce_receipt_timeout</tt>;     /* Announce receipt timeout */
    int <tt>log_announce_interval</tt>;          /* Log Announce interval */
    int <tt>log_sync_interval</tt>;              /* Log Sync interval */
    int <tt>log_min_delay_req_interval</tt>;     /* Log Minimum Delay Request interval */
    <tt>bcm_ptp_delay_mechanism_t</tt> <tt>delay_mechanism</tt>; /* Delay Mechanism */
    <tt>bcm_ptp_timestamp_mechanism_t</tt> <tt>rx_timestamp_mechanism</tt>; /* Receive Timestamp Mechanism */
    uint16 <tt>rx_packets_vlan</tt>;             /* Port Rx Packets Vlan */
    uint32 <tt>rx_packets_port_mask_high32</tt>; /* Port Rx Packets Mask High bits */
    uint32 <tt>rx_packets_port_mask_low32</tt>;  /* Port Rx Packets Mask Low bits */
    uint8 <tt>rx_packets_criteria_mask</tt>;     /* Port Rx Packets Criteria Mask */
} <tt>bcm_ptp_clock_port_info_t</tt>;

typedef struct <tt>bcm_ptp_port_dataset_s</tt> {
    <tt>bcm_ptp_port_identity_t</tt> <tt>port_identity</tt>; /* Clock Port identity */
    uint8 <tt>port_state</tt>;                   /* Port state. */
    int <tt>log_min_delay_req_interval</tt>;     /* Log minimum delay request interval */
    uint64 <tt>peer_mean_path_delay</tt>;        /* Peer Mean path delay (nanoseconds) */
    int <tt>log_announce_interval</tt>;          /* Log Announce interval */
    uint8 <tt>announce_receipt_timeout</tt>;     /* Announce receipt timeout */
    int <tt>log_sync_interval</tt>;              /* Log synchronization interval */
    uint8 <tt>delay_mechanism</tt>;              /* Delay Mechanism */
    int <tt>log_min_pdelay_req_interval</tt>;    /* Log minimum peer delay request
                                           interval */
    uint8 <tt>version_number</tt>;               /* Version Number */
} <tt>bcm_ptp_port_dataset_t</tt>;

typedef struct <tt>bcm_ptp_clock_peer_address_s</tt> {
    uint8 <tt>raw_l2_header_length</tt>;         /* Raw L2 Header Length */
    uint8 <tt>raw_l2_header</tt>[<tt>BCM_PTP_MAX_L2_HEADER_LENGTH</tt>]; /* Raw L2 Header */
    <tt>bcm_ptp_protocol_t</tt> <tt>addr_type</tt>;       /* Peer Port address type */
    <tt>bcm_ip_t</tt> <tt>ipv4_addr</tt>;                 /* Peer IPv4 address */
    <tt>bcm_ip6_t</tt> <tt>ipv6_addr</tt>;                /* Peer IPv6 address */
} <tt>bcm_ptp_clock_peer_address_t</tt>;

typedef struct <tt>bcm_ptp_clock_peer_s</tt> {
    <tt>bcm_ptp_clock_identity_t</tt> <tt>clock_identity</tt>; /* Clock Identity */
    uint16 <tt>remote_port_number</tt>;          /* Remote Clock Port Number */
    uint16 <tt>local_port_number</tt>;           /* Local Clock Port Number */
    <tt>bcm_ptp_clock_peer_address_t</tt> <tt>peer_address</tt>; /* Peer Port address */
    <tt>bcm_ptp_timestamp_mechanism_t</tt> <tt>tx_timestamp_mech</tt>; /* Send Timestamp Mechanism */
    int <tt>log_peer_delay_request_interval</tt>; /* Log Peer Delay Request Interval */
    int <tt>log_sync_interval</tt>;              /* Log Sync Interval */
    int <tt>log_announce_receive_timeout</tt>;   /* Log Announce Receive Timeout */
    int <tt>log_announce_interval</tt>;          /* Log Announce Interval */
    int <tt>log_delay_request_interval</tt>;     /* Log Delay Request Interval */
    uint8 <tt>delay_mechanism</tt>;              /* Delay Mechanism */
} <tt>bcm_ptp_clock_peer_t</tt>;

typedef struct <tt>bcm_ptp_clock_unicast_master_s</tt> {
    int <tt>log_sync_interval</tt>;              /* PTP Clock Log Sync Interval */
    int <tt>log_min_delay_request_interval</tt>; /* PTP Clock Log Minimun Delay Request Interval */
    <tt>bcm_ptp_clock_peer_address_t</tt> address; /* PTP Clock Master address */
} <tt>bcm_ptp_clock_unicast_master_t</tt>;

typedef struct <tt>bcm_ptp_tod_input_s</tt> {
    <tt>bcm_ptp_tod_source_t</tt> source;        /* PTP TOD Source */
    <tt>bcm_ptp_clock_peer_address_t</tt> <tt>peer_address</tt>; /* Peer Address For TOD Over Ethernet */
    uint32 <tt>tod_offset_ns</tt>;               /* PTP Offset Added in Nanoseconds */
    <tt>bcm_ptp_tod_format_t</tt> format;        /* PTP TOD Format */
    uint8 <tt>format_str</tt>[<tt>BCM_PTP_MAX_TOD_FORMAT_STRING</tt>]; /* PTP Format String (null terminated) */
    uint8 <tt>mask_str</tt>[<tt>BCM_PTP_MAX_TOD_FORMAT_STRING</tt>]; /* PTP Mask String (null terminated) */
} <tt>bcm_ptp_tod_input_t</tt>;

typedef struct <tt>bcm_ptp_channel_s</tt> {
    <tt>bcm_ptp_source_type_t</tt> type;         /* PTP Channel Source Type */
    <tt>bcm_ptp_timestamp_source_t</tt> source;  /* PTP Channel Timestamp Source */
    int frequency;                      /* PTP Channel Frequency */
    int <tt>tod_index</tt>;                      /* PTP Channel Index */
    int <tt>freq_priority</tt>;                  /* PTP Channel Frequency Priority */
    int <tt>freq_enabled</tt>;                   /* PTP Channel Frequency Enabled */
    int <tt>time_prio</tt>;                      /* PTP Channel Time Priority */
    int <tt>time_enabled</tt>;                   /* PTP Channel Time Enabled */
    int freq_assumed_QL;                /* PTP Channel Requency Assumed QL */
    int time_assumed_QL;                /* PTP Channel Time Assumed QL */
    int assumed_QL_enabled;             /* PTP Channel Assumed QL Enabled */
    int resolution;                     /* PTP Channel Resolution */
} <tt>bcm_ptp_channel_t</tt>;

typedef int <tt>bcm_ptp_gpio_pin_t</tt>;

typedef struct <tt>bcm_ptp_signal_output_s</tt> {
    <tt>bcm_ptp_gpio_pin_t</tt> pin; /* PTP Signal GPIO pin */
    int frequency;          /* PTP Signal Frequency */
    int <tt>phase_lock</tt>;         /* PTP Phase Lock */
    int <tt>pulse_width_ns</tt>;     /* PTP Pulse Width */
    int <tt>pulse_offset_ns</tt>;    /* PTP Pulse Offset */
} <tt>bcm_ptp_signal_output_t</tt>;

typedef struct <tt>bcm_ptp_tod_output_s</tt> {
    <tt>bcm_ptp_tod_source_t</tt> source;        /* PTP TOD Source */
    <tt>bcm_ptp_clock_peer_address_t</tt> <tt>peer_address</tt>; /* Peer Address For TOD Over Ethernet */
    uint32 <tt>tod_offset_ns</tt>;               /* PTP Offset Added in Nanoseconds */
    uint32 <tt>tod_delay_ns</tt>;                /* PTP Delay Added in Nanoseconds */
    <tt>bcm_ptp_tod_format_t</tt> format;        /* PTP TOD Format */
    int frequency;                      /* PTP Signal Frequency */
    int <tt>format_str_len</tt>;                 /* PTP Format String Length */
    uint8 <tt>format_str</tt>[<tt>BCM_PTP_MAX_TOD_FORMAT_STRING</tt>]; /* PTP Format String (null terminated) */
} <tt>bcm_ptp_tod_output_t</tt>;
</pre></blockquote>Callback mechanisms are provided for notifying the application of
PTP-related events, such as change management, messages and fault callback
<blockquote><pre>typedef int (*<tt>bcm_ptp_cb</tt>)(
    int unit, 
    <tt>bcm_ptp_stack_id_t</tt> <tt>ptp_id</tt>, 
    uint32 flags, 
    <tt>bcm_ptp_cb_type_t</tt> type, 
    uint32 length, 
    uint8 *data, 
    void *<tt>user_data</tt>);

typedef int (*<tt>bcm_ptp_ext_stack_io_wr_fn_ptr</tt>)(
    void *cookie, 
    uint32 address, 
    uint32 value);

typedef int (*<tt>bcm_ptp_ext_stack_io_rd_fn_ptr</tt>)(
    void *cookie, 
    uint32 address, 
    uint32 *value);
</pre></blockquote>The following PTP features are supported and configurable per PTP clock instance:
<p><hr noshade>
<h3>APIs for Section 5.3.17:  Precision Time Protocol
</h3>
<a name=bcm_ptp_init></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_init</tt><br>
</h2>

<blockquote>
Initializes the PTP subsystem
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_init(
    int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Initializes the PTP subsystem
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_detach</tt><br>
</h2>

<blockquote>
Shut down the PTP subsystem
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_detach(
    int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Shut down the PTP subsystem
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_stack_create></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_stack_create</tt><br>
</h2>

<blockquote>
Create a PTP stack instance
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_stack_create(
    int unit, 
    bcm_ptp_stack_info_t *ptp_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) Pointer to an PTP Stack Info structure
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Create a PTP stack instance
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_time_format_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_time_format_set</tt><br>
</h2>

<blockquote>
Set Time Of Day format for PTP stack instance.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_time_format_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    bcm_ptp_time_type_t type);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>type</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Time of Day format
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set Time Of Day format for PTP stack instance.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_cb_register></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_cb_register</tt><br>
</h2>

<blockquote>
Register a callback for handling PTP events and messages
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_cb_register(
    int unit, 
    bcm_ptp_cb_types_t cb_types, 
    bcm_ptp_cb cb, 
    void *user_data);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>cb_types</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) The set of PTP callback types for which the specified callback should be called
</td></tr>
<tr><td class="arg" valign="top"><tt>cb</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) A pointer to the callback function to call
</td></tr>
<tr><td class="arg" valign="top"><tt>user_data</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to user data to supply in the callback
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Register a callback for handling PTP events and messages
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_cb_unregister></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_cb_unregister</tt><br>
</h2>

<blockquote>
Unregister a callback
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_cb_unregister(
    int unit, 
    bcm_ptp_cb_types_t cb_types, 
    bcm_ptp_cb cb);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>cb_types</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) The set of PTP callbacks types to unregister
</td></tr>
<tr><td class="arg" valign="top"><tt>cb</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) A pointer to the callback function to unregister
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Unregister a callback for handling PTP events and messages
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_create></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_create</tt><br>
</h2>

<blockquote>
Create PTP Clock instance.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_create(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    bcm_ptp_clock_info_t *clock_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) PTP Clock Information
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Create PTP Clock instance.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_get</tt><br>
</h2>

<blockquote>
Get PTP Clock instance information.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_clock_info_t *clock_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Information
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock instance information.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_user_description_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_user_description_set</tt><br>
</h2>

<blockquote>
Set PTP Clock instance user description.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_user_description_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint8 *desc);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>desc</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) User description
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock instance user description.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_default_dataset_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_default_dataset_get</tt><br>
</h2>

<blockquote>
Get PTP Clock instance default dataset.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_default_dataset_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_default_dataset_t *dataset);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>dataset</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Default Data Set
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock instance default dataset.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_current_dataset_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_current_dataset_get</tt><br>
</h2>

<blockquote>
Get PTP Clock instance current dataset.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_current_dataset_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_current_dataset_t *dataset);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>dataset</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Current Data Set
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock instance current dataset.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_parent_dataset_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_parent_dataset_get</tt><br>
</h2>

<blockquote>
Get PTP Clock instance parent dataset.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_parent_dataset_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_parent_dataset_t *dataset);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>dataset</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Parent Data Set
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock instance parent dataset.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_time_properties_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_time_properties_get</tt><br>
</h2>

<blockquote>
Get PTP Clock instance time properties.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_time_properties_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_time_properties_t *data);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>data</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Time Properties Structure
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock instance time properties.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_priority1_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_priority1_get</tt><br>
</h2>

<blockquote>
Get PTP Clock priority 1.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_priority1_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 *priority1);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>priority1</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP priority 1 value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock priority 1 value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_priority1_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_priority1_set</tt><br>
</h2>

<blockquote>
Set PTP Clock priority 1.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_priority1_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 priority1);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>priority1</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP priority 1 value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock priority 1 value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_priority2_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_priority2_get</tt><br>
</h2>

<blockquote>
Get PTP Clock priority 2.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_priority2_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 *priority2);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>priority2</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP priority 2 value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock priority 2 value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_priority2_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_priority2_set</tt><br>
</h2>

<blockquote>
Set PTP Clock priority 2.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_priority2_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 priority2);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>priority2</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP priority 2 value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock priority 2 value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_domain_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_domain_get</tt><br>
</h2>

<blockquote>
Get PTP Clock domain.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_domain_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 *domain);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>domain</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP domain value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock domain value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_domain_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_domain_set</tt><br>
</h2>

<blockquote>
Set PTP Clock domain.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_domain_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 domain);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>domain</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP domain value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock domain value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_slaveonly_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_slaveonly_get</tt><br>
</h2>

<blockquote>
Get PTP Clock <tt>slave_only</tt>.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_slaveonly_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 *slaveonly);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>slaveonly</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP <tt>slave_only</tt> value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock <tt>slave_only</tt> value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_slaveonly_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_slaveonly_set</tt><br>
</h2>

<blockquote>
Set PTP Clock <tt>slave_only</tt>.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_slaveonly_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 slaveonly);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>slaveonly</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP <tt>slave_only</tt> value
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock <tt>slave_only</tt> value
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_accuracy_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_accuracy_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Accuracy info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_accuracy_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_clock_accuracy_t *accuracy);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>accuracy</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Accuracy info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Accuracy info.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_accuracy_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_accuracy_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Accuracy info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_accuracy_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_clock_accuracy_t *accuracy);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>accuracy</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Accuracy info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Accuracy info.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_time_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_time_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Time.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_time_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_timestamp_t *time);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>time</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Timestamp info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Time info
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_time_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_time_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Time.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_time_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_timestamp_t *time);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>time</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Timestamp info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Timestamp info
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_timescale_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_timescale_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Timescale info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_timescale_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_timescale_t *timescale);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>timescale</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Timescale info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Timestamp info
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_timescale_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_timescale_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Timescale info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_timescale_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_timescale_t *timescale);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>timescale</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Timescale info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Timescale info.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_traceability_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_traceability_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Traceability info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_traceability_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_trace_t *trace);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>trace</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Traceability info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Traceability info.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_traceability_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_traceability_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Traceability info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_traceability_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_trace_t *trace);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>trace</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Traceability info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Traceability info.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_utc_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_utc_get</tt><br>
</h2>

<blockquote>
Get PTP Clock UTC info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_utc_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_utc_t *utc);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>utc</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock UTC info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock UTC info.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_utc_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_utc_set</tt><br>
</h2>

<blockquote>
Set PTP Clock UTC info.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_utc_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_utc_t *utc);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>utc</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock UTC info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock UTC info.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_configure></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_configure</tt><br>
</h2>

<blockquote>
Configure PTP Clock Port information.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_configure(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    bcm_ptp_clock_port_info_t *info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Configure PTP Clock Port information.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_identity_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_identity_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Identity.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_identity_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    bcm_ptp_port_identity_t *identity);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>identity</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Port Identity structure
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Identity.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_type_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_type_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Type.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_type_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    bcm_ptp_port_type_t *type);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>type</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Port Type
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Type.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_protocol_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_protocol_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Protocol.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_protocol_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    bcm_ptp_protocol_t *protocol);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>protocol</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Port Protocol Type
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Protocol.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_mac_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_mac_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port MAC Address.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_mac_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    bcm_mac_t *mac);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>mac</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Port Mac Address
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port MAC Address.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_info_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_info_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Information.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_info_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    bcm_ptp_clock_port_info_t *info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>info</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Port Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Information.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_dataset_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_dataset_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Dataset Information.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_dataset_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    bcm_ptp_port_dataset_t *dataset);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>dataset</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Port Dataset
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Dataset Information.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_delay_mechanism_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_delay_mechanism_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Delay Mechanism.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_delay_mechanism_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    uint32 *delay_mechanism);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>delay_mechanism(OUT)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Port Delay Mechanism
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Delay Mechanism.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_delay_mechanism_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_delay_mechanism_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Port Delay Mechanism.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_delay_mechanism_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    uint32 delay_mechanism);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>delay_mechanism(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Port Delay Mechanism
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Port Delay Mechanism.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_latency_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_latency_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Port Latency.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_latency_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    uint32 latency_in, 
    uint32 latency_out);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>latency_in</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port latency in
</td></tr>
<tr><td class="arg" valign="top"><tt>latency_out</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port latency out
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Port Latency.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_announce_interval_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_announce_interval_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Port Log Announce Interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_announce_interval_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port Log Announce Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Port Log Announce Interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_announce_interval_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_announce_interval_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Log Announce interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_announce_interval_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int *interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Port Log Announce Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Log Announce interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_announce_receipt_timeout_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_announce_receipt_timeout_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Announce Receipt Timeout.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_announce_receipt_timeout_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    uint32 *timeout);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>timeout</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Port Announce Receipt Timeout
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Announce Receipt Timeout.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_announce_receipt_timeout_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_announce_receipt_timeout_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Port Announce Receipt Timeout.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_announce_receipt_timeout_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    uint32 timeout);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>timeout</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port Announce Receipt Timeout
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Port Announce Receipt Timeout.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_sync_interval_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_sync_interval_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Log Sync Interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_sync_interval_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int *interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Port Log Sync Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Log Sync Interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_sync_interval_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_sync_interval_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Port Log Sync Interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_sync_interval_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port Log Sync Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Port Log Sync Interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_version_number_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_version_number_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Version Number.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_version_number_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    uint32 *version);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>version</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Version Number
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Version Number.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_min_pdelay_req_interval_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_min_pdelay_req_interval_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Log Min PDelay Request Interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_min_pdelay_req_interval_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int *interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Log Minimum Peer delay Request Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Log Min PDelay Request Interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_min_pdelay_req_interval_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_min_pdelay_req_interval_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Port Log Min Peer Delay Request Interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_min_pdelay_req_interval_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Log Minimum Pdelay Request Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Port Log Min Peer Delay Request Interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_min_delay_req_interval_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_min_delay_req_interval_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Port Log Min Delay Request Interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_min_delay_req_interval_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int *interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Log Minimum Delay Request Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Port Log Min Delay Request Interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_log_min_delay_req_interval_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_log_min_delay_req_interval_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Port Log Min Delay Request Interval.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_log_min_delay_req_interval_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port, 
    int interval);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
<tr><td class="arg" valign="top"><tt>interval</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Log Minimum Delay Request Interval
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Clock Port Log Min Delay Request Interval.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_enable></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_enable</tt><br>
</h2>

<blockquote>
Enable PTP Clock Port.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_enable(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Enable PTP Clock Port.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_clock_port_disable></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_clock_port_disable</tt><br>
</h2>

<blockquote>
Disable PTP Clock Port.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_clock_port_disable(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint32 clock_port);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Clock Port
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Disable PTP Clock Port.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_slave_add></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_slave_add</tt><br>
</h2>

<blockquote>
Add PTP Clock Unicast Slave
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_slave_add(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    bcm_ptp_clock_peer_t *slave_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>slave_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Unicast Slave Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Add PTP Clock Unicast Slave
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_slave_list></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_slave_list</tt><br>
</h2>

<blockquote>
List PTP Clock Unicast Slaves
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_slave_list(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    int *num_slaves, 
    bcm_ptp_clock_peer_t *slave_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>num_slaves</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) PTP Clock Port Number Of Slaves
</td></tr>
<tr><td class="arg" valign="top"><tt>slave_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Unicast Slave Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
List PTP Clock Unicast Slave
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_slave_remove></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_slave_remove</tt><br>
</h2>

<blockquote>
Remove PTP Clock Unicast Slave
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_slave_remove(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    bcm_ptp_clock_peer_t *slave_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>slave_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Unicast Slave Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Remove PTP Clock Unicast Slave
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_slave_clear></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_slave_clear</tt><br>
</h2>

<blockquote>
Clear All PTP Clock Unicast Slaves
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_slave_clear(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Clear All PTP Clock Unicast Slaves
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_master_table_size_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_master_table_size_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Unicast Master Table Size
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_master_table_size_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    int *max_table_entries);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>max_table_entries(OUT)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Unicast Master Table Size
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Unicast Master Table Size
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_master_table_add></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_master_table_add</tt><br>
</h2>

<blockquote>
Add PTP Clock Unicast Master Table Entry
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_master_table_add(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    int log_query_interval, 
    bcm_ptp_unicast_master_t *master_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>log_query_interval(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Log Query Interval
</td></tr>
<tr><td class="arg" valign="top"><tt>master_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Unicast Master Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Add PTP Clock Unicast Master Table Entry
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_master_table_list></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_master_table_list</tt><br>
</h2>

<blockquote>
List PTP Unicast Master Table
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_master_table_list(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    int *num_masters, 
    bcm_ptp_clock_peer_address_t *master_addr);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>num_masters</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) PTP Clock Port Number Of Unicast Masters
</td></tr>
<tr><td class="arg" valign="top"><tt>master_addr</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Unicast Master Address
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
List PTP Unicast Master Table
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_master_table_remove></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_master_table_remove</tt><br>
</h2>

<blockquote>
Remove PTP Clock Unicast Master Table Entry
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_master_table_remove(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    bcm_ptp_clock_peer_address_t *master_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>master_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Unicast Master Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Remove PTP Clock Unicast Master Table Entry
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_unicast_master_table_clear></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_unicast_master_table_clear</tt><br>
</h2>

<blockquote>
Clear PTP Clock Unicast Master Table
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_unicast_master_table_clear(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Clear PTP Clock Unicast Master Table
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_acceptable_master_table_size_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_acceptable_master_table_size_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Acceptable Master Table Size
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_acceptable_master_table_size_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    int *max_table_entries);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>max_table_entries(OUT)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Acceptable Master Table Size
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Acceptable Master Table Size
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_acceptable_master_table_add></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_acceptable_master_table_add</tt><br>
</h2>

<blockquote>
Add PTP Clock Acceptable Master Table Entry
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_acceptable_master_table_add(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    int log_query_interval, 
    bcm_ptp_clock_peer_address_t *master_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>log_query_interval(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Log Query Interval
</td></tr>
<tr><td class="arg" valign="top"><tt>master_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Acceptable Master Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Add PTP Clock Acceptable Master Table Entry
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_acceptable_master_table_list></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_acceptable_master_table_list</tt><br>
</h2>

<blockquote>
List PTP Acceptable Master Table
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_acceptable_master_table_list(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    int *num_masters, 
    bcm_ptp_clock_peer_address_t *master_addr);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>num_masters</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) PTP Clock Port Number Of Acceptable Masters
</td></tr>
<tr><td class="arg" valign="top"><tt>master_addr</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Acceptable Master Address
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
List PTP Acceptable Master Table
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_acceptable_master_table_remove></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_acceptable_master_table_remove</tt><br>
</h2>

<blockquote>
Remove PTP Clock Acceptable Master Table Entry
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_acceptable_master_table_remove(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    bcm_ptp_clock_peer_address_t *master_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>master_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Acceptable Master Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Remove PTP Clock Acceptable Master Table Entry
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_acceptable_master_table_clear></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_acceptable_master_table_clear</tt><br>
</h2>

<blockquote>
Clear PTP Clock Acceptable Master Table
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_acceptable_master_table_clear(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Clear PTP Clock Acceptable Master Table
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_acceptable_master_table_enabled_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_acceptable_master_table_enabled_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Acceptable Master Table Enabled State
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_acceptable_master_table_enabled_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    uint8 *enabled);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>enabled</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Clock Acceptable Master Table Enabled Status
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Acceptable Master Table Enabled Status
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_acceptable_master_table_enabled_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_acceptable_master_table_enabled_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Acceptable Master Table Enabled State
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_acceptable_master_table_enabled_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int port_num, 
    uint8 enabled);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>port_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>enabled</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Acceptable Master Table Enabled Status
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Clock Acceptable Master Table Enabled Status
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_primary_domain_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_primary_domain_get</tt><br>
</h2>

<blockquote>
Get PTP Clock Primary Domain
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_primary_domain_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int *primary_domain);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>primary_domain(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Primary Domain
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Transparent Clock Primary Domain
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_primary_domain_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_primary_domain_set</tt><br>
</h2>

<blockquote>
Set PTP Clock Primary Domain
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_primary_domain_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int primary_domain);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>primary_domain(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Clock Primary Domain
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Transparent Clock Primary Domain
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_transparent_clock_default_dataset_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_transparent_clock_default_dataset_get</tt><br>
</h2>

<blockquote>
Get PTP Transparent Clock Default Dataset
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_transparent_clock_default_dataset_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_transparent_clock_default_dataset_t *data_set);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>data_set</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Transparent Clock Default Dataset
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Transparent Clock Default Dataset
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_transparent_clock_port_dataset_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_transparent_clock_port_dataset_get</tt><br>
</h2>

<blockquote>
Get PTP Transparent Clock Port Dataset
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_transparent_clock_port_dataset_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    uint16 clock_port, 
    bcm_ptp_transparent_clock_port_dataset_t *data_set);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Port Number
</td></tr>
<tr><td class="arg" valign="top"><tt>data_set</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Transparent Clock Port Dataset
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Transparent Clock Port Dataset
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_tod_input_sources_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_tod_input_sources_set</tt><br>
</h2>

<blockquote>
Set PTP TOD Input Sources
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_tod_input_sources_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int num_tod_sources, 
    bcm_ptp_tod_input_t *tod_sources);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>num_tod_sources(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP TOD Number Of Sources
</td></tr>
<tr><td class="arg" valign="top"><tt>tod_sources</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP TOD Sources
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP TOD Input Sources
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_timesource_input_status_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_timesource_input_status_get</tt><br>
</h2>

<blockquote>
Get PTP Input Timesource Status
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_timesource_input_status_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    bcm_ptp_timesource_status_t *status);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>status</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP Input Timesource Status
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Input Timesource Status
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_input_channels_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_input_channels_set</tt><br>
</h2>

<blockquote>
Set PTP Input Channels
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_input_channels_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int num_channels, 
    bcm_ptp_channel_t *channels);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>num_channels</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Number Of Input Channels
</td></tr>
<tr><td class="arg" valign="top"><tt>channels</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Input Channels
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Input Channels
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_input_channel_precedence_mode_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_input_channel_precedence_mode_set</tt><br>
</h2>

<blockquote>
Set PTP Input Channels Precedence Mode
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_input_channel_precedence_mode_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int channel_select_mode);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>channel_select_mode(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Channel Select Mode
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Input Channels Precedence Mode
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_input_channel_switching_mode_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_input_channel_switching_mode_set</tt><br>
</h2>

<blockquote>
Set PTP Input Channels Switching Mode
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_input_channel_switching_mode_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int channel_switching_mode);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>channel_switching_mode(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Channel Switching Mode
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Input Channels Switching Mode
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_tod_output_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_tod_output_set</tt><br>
</h2>

<blockquote>
Set PTP TOD Output
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_tod_output_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int *tod_output_id, 
    bcm_ptp_tod_output_t *output_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>tod_output_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) PTP TOD Output ID
</td></tr>
<tr><td class="arg" valign="top"><tt>output_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP TOD Output Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP TOD Output
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_tod_output_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_tod_output_get</tt><br>
</h2>

<blockquote>
Get PTP TOD Output
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_tod_output_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int *tod_output_count, 
    bcm_ptp_tod_output_t *tod_output_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>tod_output_count(IN/OUT)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP TOD Output ID
</td></tr>
<tr><td class="arg" valign="top"><tt>tod_output_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP TOD Output ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP TOD Output
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_tod_output_remove></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_tod_output_remove</tt><br>
</h2>

<blockquote>
Remove PTP TOD Output
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_tod_output_remove(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int tod_output_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>tod_output_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP TOD Output ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Remove PTP TOD Output
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_signal_output_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_signal_output_set</tt><br>
</h2>

<blockquote>
Set PTP Signal Output
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_signal_output_set(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int *signal_output_id, 
    bcm_ptp_signal_output_t *output_info);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>signal_output_id(OUT)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Signal Output ID
</td></tr>
<tr><td class="arg" valign="top"><tt>output_info</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Signal Output Info
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set PTP Signal Output
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_signal_output_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_signal_output_get</tt><br>
</h2>

<blockquote>
Get PTP Signal Output
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_signal_output_get(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int *signal_output_count, 
    bcm_ptp_signal_output_t *signal_output_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>signal_output_count(IN/OUT)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP TOD Output ID
</td></tr>
<tr><td class="arg" valign="top"><tt>signal_output_id(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Signal Output ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get PTP Signal Output
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<a name=bcm_ptp_signal_output_remove></a>
<hr noshade>
<h2 class="api">
<tt>bcm_ptp_signal_output_remove</tt><br>
</h2>

<blockquote>
Remove PTP Signal Output
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/ptp.h&gt;
int 
bcm_ptp_signal_output_remove(
    int unit, 
    bcm_ptp_stack_id_t ptp_id, 
    int clock_num, 
    int signal_output_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>ptp_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Stack ID
</td></tr>
<tr><td class="arg" valign="top"><tt>clock_num</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) PTP Clock Number
</td></tr>
<tr><td class="arg" valign="top"><tt>signal_output_id(IN)</tt></td><td>&nbsp;&nbsp;</td><td>
 PTP Signal Output ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Remove PTP Signal Output
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
</table></blockquote>
<br><hr noshade><a name="regex"></a>
<h3>Section 5.3.18:   Regex 
</h3>
<p>Broadcom regex APIs provides ability ability to analyze and recognize the contents of data packets and hence the applications. The identification criteria is specified using regular expressions, along with other criteria like the protocol, L4 port etc. Application can assign actions to the matching application like dropping the packets in that flow, rate limit the flow etc.
<p>Regex module has in inbuilt regular expression to DFA conversion engine which maps the user provided regular expression to DFA. 
<p>The Regular expression compiler supports the following features
<p>All Regex API identifiers have prefix <tt>bcm_regex_</tt>.
<p>The Regex API falls in 3 categories
<ul><li> Switch Configuration
</li><li> Port level configuration
</li><li> FP level configuration to override tracking
</li><li> Assignment of regular patterns and corresponding actions
</li><li> Event notification API to notify of tracking events
</li></ul>In general, application will first configure the Regex capable Broadcom device with the desired configuration. Optionally configure port for Regex. Application can also optionally override default tracking options on particular set of packets using filter APIs. Once the configuration is done, application will assign regular expression patterns to recognize application/packet flows, along with corresponding actions. Application can register callbacks to be notified of various events when hardware inspects and recognizes the packets.
<p>Regex module incorporates inbuild regular expression compiler. This compiler converts the user specified regex pattern into DFA, which in turn gets converted to device specific hardware DFA state machine.
<p>Regex compiler supports the following features
<h3>Table 93:   Regular expression features supported
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Construct</b></td><td><b> Description
</b></td></tr><tr><td>  Alternation</td><td> zero or more branches, separated by '|'. A regular expression matches if at least one of the alternative branches matches.
</td></tr><tr><td>  Concatenation</td><td> a branch consists of a sequence of zero or more pieces. To match, a branch must match all of the pieces in the sequence, in the order specified.
</td></tr><tr><td>  Quantification (closure)</td><td> A piece consists of an atom possibly followed by one of the following characters: '*', '+' or '?' (these are referred to as repetition characters). An atom followed by '*' matches a sequence of 0 or more matches of the atom. An atom followed by '+' matches a sequence of 1 or more matches of the atom. An atom followed by '?' optionally matches the atom or the null string. An atom followed by a number enclosed in {} matches a sequence of that exact number of matches of the atom.
</td></tr><tr><td>  Character class</td><td> A character class matches only a single character in the range specified within []. for example [a-c] will match if the character is a or b or c.
</td></tr><tr><td>  '\d'</td><td> Any digit character [0-9]
</td></tr><tr><td>  '\D'</td><td> Any non digit character [^0-9]
</td></tr><tr><td>  Dot</td><td> Any character
</td></tr></tbody></table>It is recommended while assigning patterns, to assign all the case insensitive patterns together, otherwise the DFA state machine explodes as regex will try to match both the lower case and upper case for the characters that is if the pattern match is 'abc' case insensitive, it will be converted to [aA][bB][cC] whereas if all the patterns are case insensitive, software can enable the hardware feature which may result in fewer DFA states.
<p>Regex event processing
<p>Regex engine generates several events which can be notified to the registered applications. These events in general provide application, the information on what flows are being tracked, if there is a match, the corresponding match identifier so that application can relate it back to particular application. The following table summarizes various events that the application can register for.
<h3>Table 96:   Regex events
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>report_flag</tt> value</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_REGEX_REPORT_NEW</tt></td><td> Notify when a new flow is tracked, this event is triggered whenever hardware starts inspecting packets.
</td></tr><tr><td>  <tt>BCM_REGEX_REPORT_MATCHED</tt></td><td> Notify if the flow matches any of the match patterns installed. The notification provides information on the source and destination IP address, L4 port and the match identifier.
</td></tr><tr><td>  <tt>BCM_REGEX_REPORT_END</tt></td><td> Notify when the session is stopped being tracked, either session termination or session expiry.
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.18:  Regex 
</h3>
<a name=bcm_regex_config_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_config_set</tt><br>
</h2>

<blockquote>
Set or Return the Regex configuration.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_config_get(int unit, bcm_regex_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN)  BCM unit 
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to <tt>bcm_regex_config_t</tt> structure
</td></tr>
<tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN)  BCM unit 
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) Pointer to <tt>bcm_regex_config_t</tt> structure
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_config_set</tt> configures the Regex features on the specified switch unit.
Application should initialize the <tt>bcm_regex_config_t</tt> structure and pass the pointer to it to the API. <tt>bcm_regex_config_get</tt> retrieves the current configuration of the Regex configuration on the specified switch unit. Also application can call the <tt>bcm_regex_config_get</tt> API in the beginning to retrieve the default values for the configuration.
<p>The following code specifies the <tt>bcm_regex_config_s</tt> structure.
<blockquote><pre>    typedef struct <tt>bcm_regex_config_s</tt> {
        uint32 flags;

        /* max number of flows to be supported */
        int <tt>max_flows</tt>;

        /* max payload bytes to process */
        int <tt>payload_depth</tt>;

        /* max number of packets to inspect */
        int <tt>inspect_num_pkt</tt>;

        /* inactivity timeout */
        int <tt>inactivity_timeout_usec</tt>;

        /* Src and dest mac to be used for signature match result pkts. */
        <tt>bcm_mac_t</tt> <tt>src_mac</tt>;
        <tt>bcm_mac_t</tt> <tt>dst_mac</tt>;
        uint16 ethertype;

        /* event reporting configuration */
        uint32 <tt>report_flags</tt>;
    } <tt>bcm_regex_config_t</tt>;

</pre></blockquote><tt>bcm_regex_config_t</tt> structure specifies the Regex configuration. The following table summarizes the various fields in the <tt>bcm_regex_config_t</tt> structure.
<h3>Table 90:   bcm_regex_config_t 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  member</b></td><td><b> Description
</b></td></tr><tr><td>  flags</td><td> Bitmap of various configuration options.
</td></tr><tr><td>  <tt>max_flows</tt></td><td> Maximum number of flows to be tracked by the HW. If application specifies a negative value, then the maximum number of flows that can be tracked by the device, are tracked.
</td></tr><tr><td>  <tt>payload_depth</tt></td><td> Maximum payload length that will be inspected for pattern match.
</td></tr><tr><td>  <tt>inspect_num_pkt</tt></td><td> Maximum number of packets that should be inspected per flow.
</td></tr><tr><td>  <tt>inactivity_timeout_usec</tt></td><td> Expire the tracked flow after the specified interval of no activity.
</td></tr><tr><td>  <tt>src_mac</tt></td><td> Source MAC address of internally used packets within the Regex module. These packets are no visible outside and are used within the device only for conveying results to flow tracker.
</td></tr><tr><td>  <tt>dst_mac</tt></td><td> Destination MAC address of internally used packets within the Regex module. These packets are no visible outside and are used within the device only for conveying results to flow tracker.
</td></tr><tr><td>  ethertype</td><td> Ethertype of internally used packets within the Regex module. These packets are no visible outside and are used within the device only for conveying results to flow tracker.
</td></tr><tr><td>  <tt>report_flags</tt></td><td> Bitmap of the events that hardware will generate while inspecting packets.
</td></tr></tbody></table>The flags member of the <tt>bcm_regex_config_t</tt> structure controls various features of the Regex module. The following table summarizes the various flags that can be used to configure the device.
<h3>Table 91:   bcm_regex_config_t flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  flag value</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_REGEX_CONFIG_ENABLE</tt></td><td> Enable Regex feature
</td></tr><tr><td>  <tt>BCM_REGEX_CONFIG_TCP_SESSION_DETECT</tt></td><td> Monitor TCP flow termination and remove the flow from being tracked on TCP session termination.
</td></tr><tr><td>  <tt>BCM_REGEX_CONFIG_IP4</tt></td><td> Enable monitoring IPv4 traffic
</td></tr><tr><td>  <tt>BCM_REGEX_CONFIG_IP6</tt></td><td> Enable monitoring IPv6 traffic
</td></tr><tr><td>  <tt>BCM_REGEX_CONFIG_AGING</tt></td><td> Enable aging and purge any flows on timeout.
</td></tr></tbody></table>Regex module can notify applications on various events. The <tt>report_flags</tt> member of <tt>bcm_regex_config_t</tt> configures which of these events are enabled for notification. The following table summarizes the various events
<h3>Table 92:   bcm_regex_config_t report_flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  <tt>report_flag</tt> value</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_REGEX_CONFIG_ENABLE</tt></td><td> Enable Regex feature
</td></tr><tr><td>  <tt>BCM_REGEX_CONFIG_TCP_SESSION_DETECT</tt></td><td> Monitor TCP flow termination and remove the flow from being tracked on TCP session termination.
</td></tr><tr><td>  <tt>BCM_REGEX_REPORT_NEW</tt></td><td> Notify when a new flow is tracked
</td></tr><tr><td>  <tt>BCM_REGEX_REPORT_MATCHED</tt></td><td> Notify if the flow matches any of the match patterns installed
</td></tr><tr><td>  <tt>BCM_REGEX_REPORT_END</tt></td><td> Notify when the session is stopped being tracked
</td></tr></tbody></table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_exclude_add></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_exclude_add</tt><br>
</h2>

<blockquote>
Exclude a range of L4 ports from packet inspection.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_exclude_add(int unit, uint8 protocol, int l4low, int l4high);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
     (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>protocol</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) IP Protocol number
</td></tr>
<tr><td class="arg" valign="top"><tt>l4low</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Lower value of L4 port range
</td></tr>
<tr><td class="arg" valign="top"><tt>l4high</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Upper value of L4 port range
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_exclude_add</tt> API adds a range of L4 port range from being tracked for the specified protocol like TCP or UDP. 
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_exclude_delete></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_exclude_delete</tt><br>
</h2>

<blockquote>
Delete a range of L4 ports excluded from packet inspection.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_exclude_delete(int unit, uint8 protocol, int l4low, int l4high);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
     (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>protocol</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) IP Protocol number
</td></tr>
<tr><td class="arg" valign="top"><tt>l4low</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Lower value of L4 port range
</td></tr>
<tr><td class="arg" valign="top"><tt>l4high</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Upper value of L4 port range
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Delete a range of L4 ports that are excluded from packet inspection for the specified protocol.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_exclude_delete_all></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_exclude_delete_all</tt><br>
</h2>

<blockquote>
Delete all the L4 port ranges that are excluded from packet inspection.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_exclude_delete_all(int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
     (IN) BCM unit identifier
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Delete all the L4 ports from being bypassed for packet inspection.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_exclude_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_exclude_get</tt><br>
</h2>

<blockquote>
Return the L4 port ranges excluded from packet inspection
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_exclude_get(int unit, int array_size, uint8 *protocol,
                       uin16 *l4low, uint16 *l4high, int *array_count);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>array_size</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) size of user provided array
</td></tr>
<tr><td class="arg" valign="top"><tt>protocol</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) Array of IP protocol
</td></tr>
<tr><td class="arg" valign="top"><tt>l4low</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) Array of lower range of the L4 Ports
</td></tr>
<tr><td class="arg" valign="top"><tt>l4high</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) Array of upper range of the L4 Ports
</td></tr>
<tr><td class="arg" valign="top"><tt>array_count</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) Pointer to user provided int pointer
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_exclude_get</tt> API returns the list of all the L4 port ranges that are currently excluded from packet inspection. The range values are returned along with the corresponding IP protocol in arrays provided the called of the API. The protocol parameter specifies the IP protocol. l4low and l4high provided the lower and upper ranges of the range. <tt>array_count</tt> returns the number of entries that are valid in the array when the API returns.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_engine_create></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_engine_create</tt><br>
</h2>

<blockquote>
Create a regex matching engine.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_engine_create(int unit,
                            bcm_regex_engine_config_t *config,
                            bcm_regex_engine_t *engid);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to engine configuration structure
</td></tr>
<tr><td class="arg" valign="top"><tt>engid</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) User provided pointer to <tt>engine_id</tt> filled by API
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Creates a Regex engine corresponding to the configuration specified in <tt>bcm_regex_engine_config_t</tt> structure. The API will return an engine identifier in user provided pointer to <tt>bcm_regex_engine_t</tt>. Application should use this engine identifier for further operations like installing of match objects.
<blockquote><pre>    typedef int <tt>bcm_regex_engine_t</tt>;

    typedef struct <tt>bcm_regex_engine_config_s</tt> {
        uint32 flags;
    } <tt>bcm_regex_engine_config_t</tt>;

</pre></blockquote>The flags member of the <tt>bcm_regex_engine_config_s</tt> structure specifies various configuration options for the regex engine. 
<ul><li> <tt>BCM_REGEX_ENGINE_CONFIG_MULTI_PACKET</tt>
</li></ul><tt>BCM_REGEX_ENGINE_CONFIG_MULTI_PACKET</tt> flag specifies that engine is configured in multi packet mode. Multi packet mode of the regex engine, tries to match a pattern across multiple packets, say if packet X matches partially, the subsequent packet will be continues to be matched and check if the pattern matches across packet boundary in packet payload. Depending upon the switch device, <tt>BCM_REGEX_ENGINE_CONFIG_MULTI_PACKET</tt> mode may share internal resources with the DFA memories and may impose limitation on the DFA sizes that can be accommodated in the engine.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_engine_destroy></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_engine_destroy</tt><br>
</h2>

<blockquote>
Create a regex matching engine.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_engine_destroy(int unit, bcm_regex_engine_t engid);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>engid</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) regex engine identifier
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_engine_destroy</tt> API destroys the regex engine and frees any resources associated with it. All the match objects that are assigned to the engine are destroyed as well.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_engine_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_engine_get</tt><br>
</h2>

<blockquote>
Retrieve the information corresponding to the regex engine
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_engine_get(int unit,
                         bcm_regex_engine_t engid,
                         bcm_regex_engine_config_t *config);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>engid</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) regex engine identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>config</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) user provided pointer to <tt>bcm_regex_engine_config_t</tt>
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_engine_destroy</tt> API destroys the regex engine and frees any resources associated with it. All the match objects that are assigned to the engine are destroyed as well.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_engine_traverse></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_engine_traverse</tt><br>
</h2>

<blockquote>
Traverse all the regex engines for the specified unit.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_engine_traverse(int unit,
                      bcm_regex_engine_traverse_cb cb, void *user_data);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>cb</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) user provided callback function pointer
</td></tr>
<tr><td class="arg" valign="top"><tt>user_data</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) User provided data
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_engine_traverse</tt> traverses all the created regex engines and calls user provided callback function for each engine.  User should provide the callback function pointer conforming to following prototype:
<blockquote><pre>typedef int (*<tt>bcm_regex_engine_traverse_cb</tt>)(int unit,
                                           <tt>bcm_regex_engine_t</tt> engid,
                                           <tt>bcm_regex_engine_config_t</tt> *config,
                                           void *<tt>user_data</tt>);
</pre></blockquote></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_match_check></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_match_check</tt><br>
</h2>

<blockquote>
Compute the DFA state size for the specified group of match objects. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_match_check(int unit,
                              int match_count,
                              bcm_regex_match_t *matches,
                              int *metric);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>match_count</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of match objects
</td></tr>
<tr><td class="arg" valign="top"><tt>matches</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Array of match objects
</td></tr>
<tr><td class="arg" valign="top"><tt>metric</tt></td><td>&nbsp;&nbsp;</td><td>
 (INOUT) DFA states corresponding to match objects
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_match_check</tt> API computes the number of DFA state when a group of match objects are combined together. A match object specifies the regular expression which needs to be inspected in the packets going through the device. Multiple of match objects are assigned together to an engine and the patterns are alternated and the final DFA is computed to match these objects. This API provides an ability to the application to mix and match various match objects, so as to optimize the resources on the device. Since the device has fix amount of state machine resources, moving and grouping compatible match objects together, results in optimized use of the resources.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_match_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_match_set</tt><br>
</h2>

<blockquote>
Compute the DFA state size for the specified group of match objects. 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_match_set(int unit,
                        bcm_regex_engine_t engid,
                        int match_count,
                        bcm_regex_match_t *matches);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>engid</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Regex engine identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>match_count</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of match objects
</td></tr>
<tr><td class="arg" valign="top"><tt>matches</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Array of match objects
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_match_set</tt> API installs a group of match objects to the regex engine. DFA corresponding to the match objects is computed and mapped to hardware. A match object specifies the match pattern to be inspected in the packets flowing through the device. Besides the regular expression pattern, user may assign more match criteria based on packet properties to fully qualify the match. Each match object is identified by a user specified identifier, <tt>match_id</tt>.
<p>The structure below summarizes the match object:
<blockquote><pre>    typedef struct <tt>bcm_regex_engine_match_s</tt> {
        uint32 flags;

        /* user specified match id */
        int <tt>match_id</tt>;

        char pattern[BCM_regex_engine_MAX_PATTERN_SIZE];

        /* packet sequence */
        int sequence; /* 0 - first pkt, non zero - not first pkt
                         -1 - any pkt */
        /* ip protocol 0 - any protocol, non-zero - specified protocol */
        uint8 protocol;

        /* l4 src port range */
        int <tt>l4src_port_low</tt>;
        int <tt>l4src_port_high</tt>;

        /* l4 dst port range */
        int <tt>l4dst_port_low</tt>;
        int <tt>l4dst_port_high</tt>;

        /* priority */
        int priority;

        /* user specified tags to link matches together in a chain */
        int provides;
        int requires;

        /* retire flow if inactive for specified usec */
        int <tt>inactivity_timout_usec</tt>;

        / actions */
        uint32 <tt>action_flags</tt>;
        int <tt>new_int_pri</tt>;
        uint8 <tt>new_dscp</tt>;
        uint8 <tt>new_pkt_pri</tt>;

        /* policer id is non-zero */
        int <tt>policer_id</tt>;
    } <tt>bcm_regex_match_t</tt>;

</pre></blockquote><tt>match_id</tt> member of the <tt>bcm_regex_match_t</tt> structure identifies the match object and is conveyed back to application in the match event if any of the packets match the signature specified by <tt>bcm_regex_match_t</tt> structure. Besides the regular expression, a match can further be qualified by direction of the packets. The flags member of the <tt>bcm_regex_match_t</tt> structure is the bitmap of the following flags:
<h3>Table 94:   bcm_regex_match_t flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  flag value</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_REGEX_MATCH_TO_SERVER</tt></td><td> Match pattern only in TCP client to server direction
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_TO_CLIENT</tt></td><td> Match pattern only in TCP server to client direction
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_MULTI_FLOW</tt></td><td> Do not purge the session on termination and continue inspection on subsequent TCP sessions. This is typically useful for HTTP sessions.
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_CASE_INSENSITIVE</tt></td><td> Match both lower and upper case of characters
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_L4_SRC_PORT</tt></td><td> Further qualify the match only if L4 source port in the range specified by <tt>l4src_port_low</tt> and <tt>l4src_port_high</tt>.
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_L4_DST_PORT</tt></td><td> Further qualify the match only if L4 destination port in the range specified by <tt>l4src_port_low</tt> and <tt>l4src_port_high</tt>.
</td></tr></tbody></table>It is possible to qualify the match only if a set of pattern match in sequence on packets, i.e. packet matches pattern A and the next packet matches B. provides and requires members of the <tt>bcm_regex_match_t</tt> structure provides a sort of user specified link list. "provides" is user specified identifier for this pattern and "requires" is the identifier for the next match structure that needs to match to qualify the match.
<p><tt>action_flags</tt> member of the <tt>bcm_regex_match_t</tt> structure specifies the actions that needs to be taken if the packet is matched. The following table summarizes the various action flags
<h3>Table 95:   Action flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  flag value</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_REGEX_MATCH_ACTION_IGNORE</tt></td><td> No further actions needed on the packets, stop inspecting.
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_ACTION_DROP</tt></td><td> Drop packets belonging to this session
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_ACTION_COPY_TO_CPU</tt></td><td> Copy the packet to CPU
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_ACTION_INT_PRI</tt></td><td> Change the internal priority of the packets to new priority specified by <tt>new_int_pri</tt> member of <tt>bcm_regex_match_t</tt> structure.
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_ACTION_DSCP</tt></td><td> Change the DSCP code the packets to new code specified by <tt>new_dscp</tt> member of <tt>bcm_regex_match_t</tt> structure.
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_ACTION_PKT_PRI</tt></td><td> Change the packet priority to new priority specified by <tt>new_pkt_pri</tt> member of <tt>bcm_regex_match_t</tt> structure.
</td></tr><tr><td>  <tt>BCM_REGEX_MATCH_ACTION_NO_REPORT</tt></td><td> Do not generate match event
</td></tr></tbody></table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_report_register></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_report_register</tt><br>
</h2>

<blockquote>
Register user provided application callback function for Regex event notification.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_report_register(int unit, uint32 reports,
                            bcm_regex_report_cb cbf, void *user_data);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>reports</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Bitmap of <tt>BCM_REGEX_REPORT_XX</tt>
</td></tr>
<tr><td class="arg" valign="top"><tt>cb</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) user provided callback function pointer
</td></tr>
<tr><td class="arg" valign="top"><tt>user_data</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) User provided data
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
<tt>bcm_regex_report_register</tt> registers user provided application callback function. This callback function is invoked in response to hardware triggering regex events. User should provide the callback function conforming to the following prototype.
<blockquote><pre>typedef int (*<tt>bcm_regex_report_cb</tt>)(int unit, <tt>bcm_regex_report_t</tt> *<tt>regex_data</tt>, void * <tt>user_data</tt>);
</pre></blockquote><tt>bcm_regex_report_t</tt> structure in the callback function provides information about the packet flow to the user. 
<p>The following structure summarizes the <tt>bcm_regex_report_t</tt> structure which is passed to application in event notification callback.
<blockquote><pre>    typedef struct <tt>bcm_regex_report_s</tt> {
        int <tt>match_id</tt>;
        uint32 flags;
        <tt>bcm_ip_t</tt> <tt>src_ip4_addr</tt>; /* IPv4: source IP address. */
        <tt>bcm_ip_t</tt> <tt>dst_ip4_addr</tt>; /* IPv4: destination IP address. */
        <tt>bcm_ip6_t</tt> <tt>src_ip6_addr</tt>; /* IPv6: source IP address. */
        <tt>bcm_ip6_t</tt> <tt>dst_ip6_addr</tt>;
        uint8 <tt>ip_protocol</tt>;
        uint16 <tt>l4_src_port</tt>;
        uint16 <tt>l4_dst_port</tt>;
        uint32 timestamp; /* Session information. */
        uint64 <tt>packet_count</tt>;
        uint64 <tt>byte_count</tt>;
    } <tt>bcm_regex_report_t</tt>;

</pre></blockquote>The following table summarizes the information conveyed by various members of the <tt>bcm_regex_report_t</tt> structure.
<h3>Table 97:   bcm_regex_report_t
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  member</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>match_id</tt></td><td> Specifies match object identifier which matched the packets.
</td></tr><tr><td>  flags</td><td> Specifies the event type. This is bitmap of <tt>BCM_REGEX_REPORT_XX</tt> values. <tt>BCM_REGEX_REPORT_NEW</tt> identifies the new flow being inspected. <tt>BCM_REGEX_REPORT_MATCHED</tt> identifies a matched flow. <tt>BCM_REGEX_REPORT_END</tt> notifies when the flow is stopped being tracked either due of TCP session termination or session timed out. <tt>BCM_REGEX_REPORT_IP6</tt> flag identifies the IP address type in the packet. If <tt>BCM_REGEX_REPORT_IP6</tt> is set, <tt>src_ip6_addr</tt>/<tt>dst_ip6_addr</tt> specifies the IP addresses of the flow, otherwise <tt>src_ip4_addr</tt>/<tt>dst_ip4_addr</tt> contains the ip addresses for the flow.
</td></tr><tr><td>  <tt>src_ip4_addr</tt></td><td> Source IPv4 address of the session
</td></tr><tr><td>  <tt>dst_ip4_addr</tt></td><td> Destination IPv4 address of the session
</td></tr><tr><td>  <tt>src_ip6_addr</tt></td><td> Source IPv6 address of the session. It contains valid information only if flags <tt>BCM_REGEX_REPORT_IP6</tt> is set.
</td></tr><tr><td>  <tt>dst_ip6_addr</tt></td><td> Destination IPv6 address of the session. It contains valid information only if flags <tt>BCM_REGEX_REPORT_IP6</tt> is set.
</td></tr><tr><td>  <tt>l4_src_port</tt></td><td> Source layer 4 port address
</td></tr><tr><td>  <tt>l4_src_port</tt></td><td> Destination layer 4 port address
</td></tr></tbody></table><tt>user_data</tt> is provided back to the application on event notification.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<a name=bcm_regex_report_unregister></a>
<hr noshade>
<h2 class="api">
<tt>bcm_regex_report_unregister</tt><br>
</h2>

<blockquote>
Unregister user provided application callback function for Regex event notification.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/bregex.h&gt;

int bcm_regex_report_unregister(int unit, bcm_regex_report_t reports,
                            bcm_regex_report_cb cbf, void *user_data);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
         (IN) BCM unit identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>reports</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Bitmap of <tt>BCM_REGEX_REPORT_XX</tt>
</td></tr>
<tr><td class="arg" valign="top"><tt>cb</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) user provided callback function pointer
</td></tr>
<tr><td class="arg" valign="top"><tt>user_data</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) User provided data
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Unregister user notification callback function.
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
        <tt>bcm_error_t</tt> type
</td></tr>
</table></blockquote>
<br><hr noshade><a name="rx"></a>
<h3>Section 5.3.19:   Receive
</h3>
<p>The following reason codes are added to the Packet Rx Reasons

<a name=rx_reasons_code_table></a>
<h3>Table 98:   Packet RX Reasons. 
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Reason</b></td><td><b> Description
</b></td></tr><tr><td>  bcmRxReasonBfdSlowpath</td><td> BFD packet, slowpath to CPU
</td></tr><tr><td>  bcmRxReasonBfd</td><td> BFD packet, with error
</td></tr></tbody></table><p><br><hr noshade><a name="stat"></a>
<h3>Section 5.3.20:   stat
</h3>
<p>The following stat enumeration types are added to the <tt>bcm_stat_val_t</tt>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td> snmpDot3StatsInRangeLengthError
</td></tr><tr><td> snmpDot3OmpEmulationCRC8Errors
</td></tr><tr><td> snmpDot3MpcpRxGate
</td></tr><tr><td> snmpDot3MpcpRxRegister
</td></tr><tr><td> snmpDot3MpcpTxRegRequest
</td></tr><tr><td> snmpDot3MpcpTxRegAck
</td></tr><tr><td> snmpDot3MpcpTxReport
</td></tr><tr><td> snmpDot3EponFecCorrectedBlocks
</td></tr><tr><td> snmpDot3EponFecUncorrectableBlocks
</td></tr><tr><td> snmpBcmPonInDroppedOctets
</td></tr><tr><td> snmpBcmPonOutDroppedOctets
</td></tr><tr><td> snmpBcmPonInDelayedOctets
</td></tr><tr><td> snmpBcmPonOutDelayedOctets
</td></tr><tr><td> snmpBcmPonInDelayedHundredUs
</td></tr><tr><td> snmpBcmPonOutDelayedHundredUs
</td></tr><tr><td> snmpBcmPonInFrameErrors
</td></tr><tr><td> snmpBcmPonInOamFrames
</td></tr><tr><td> snmpBcmPonOutOamFrames
</td></tr><tr><td> snmpBcmPonOutUnusedOctets
</td></tr></tbody></table><p>For BCM5644x Katana chip, flexible counter feature allows complete flexibility under SW control to 
update counters based on any table access and provide deterministic behavior of counters.
<p>List of ingress(pre-enqueue) tables where flex-counter feature is supported
<ul><li><tt>PORT_TABLE</tt>
</li><li><tt>VLAN_XLATE</tt>
</li><li><tt>VFP_POLICY_TABLE</tt> (vlan field processor)
</li><li><tt>MPLS_ENTRY</tt>
</li><li><tt>SOURCE_VP</tt> (virtual port) 
</li><li><tt>L3_IIF</tt>
</li><li>VFI       (virtual forwarding interface)
</li><li>VRF       (virtual routing and forwarding) 
</li><li>VLAN
</li></ul>List of egress(post-enqueue) tables where flex-counter feature is supported
<ul><li><tt>EGR_L3_NEXT_HOP</tt>
</li><li><tt>EGR_VFI</tt>
</li><li><tt>EGR_PORT</tt>
</li><li><tt>EGR_VLAN</tt>
</li><li><tt>EGR_VLAN_XLATE</tt>
</li></ul><blockquote><pre>/* Ingress and Egress Statistics Accounting Objects */
typedef enum <tt>bcm_stat_object_e</tt> {
    bcmStatObjectIngPort = 0,            /* Ingress Port Object              */
    bcmStatObjectIngVlan = 1,            /* Ingress Vlan Object              */
    bcmStatObjectIngVlanXlate = 2,       /* Ingress Vlan Translate Object    */
    bcmStatObjectIngVfi = 3,             /* Ingress VFI Object               */
    bcmStatObjectIngL3Intf = 4,          /* Ingress L3 Interface Object      */
    bcmStatObjectIngVrf = 5,             /* Ingress VRF Object               */
    bcmStatObjectIngPolicy = 6,          /* Ingress Policy Object            */
    bcmStatObjectIngMplsVcLabel = 7,     /* Ingress MPLS VC Label Object     */
    bcmStatObjectIngMplsSwitchLabel = 8, /* Ingress MPLS Switch Label Object */
    bcmStatObjectEgrPort = 9,            /* Egress Port Object               */
    bcmStatObjectEgrVlan = 10,           /* Egress Vlan Object               */
    bcmStatObjectEgrVlanXlate = 11,      /* Egress Vlan Translate Object     */
    bcmStatObjectEgrVfi = 12,            /* Egress VFI Object                */
    bcmStatObjectEgrL3Intf = 13          /* Egress L3 Interface Object       */
} <tt>bcm_stat_object_t</tt>;

/* Counter Statistics Values */
typedef struct <tt>bcm_stat_value_s</tt> {
    uint32 packets; /* packets value */
    uint64 bytes;   /* bytes value   */
} <tt>bcm_stat_value_t</tt>;

/* Statistics Group Modes. */

typedef enum <tt>bcm_stat_group_mode_e</tt> {
    bcmStatGroupModeSingle = 0,         /* A single counter used for all traffic
                                           types */
    bcmStatGroupModeTrafficType = 1,    /* A dedicated counter per traffic type
                                           Unicast, multicast, broadcast */
    bcmStatGroupModeDlfAll = 2,         /* A pair of counters where the base
                                           counter is used for dlf and the other
                                           counter is used for all traffic types 
                                           */
    bcmStatGroupModeDlfIntPri = 3,      /* N+1 counters where the base counter
                                           is used for dlf and next N are used
                                           per Cos */
    bcmStatGroupModeTyped = 4,          /* A dedicated counter for unknown
                                           unicast, known unicast, multicast,
                                           broadcast */
    bcmStatGroupModeTypedAll = 5,       /* A dedicated counter for unknown
                                           unicast, known unicast, multicast,
                                           broadcast and one for all traffic(not
                                           already counted) */
    bcmStatGroupModeTypedIntPri = 6,    /* A dedicated counter for unknown
                                           unicast, known unicast,
                                           multicast,broadcast and N internal
                                           priority counters for traffic (not
                                           already counted) */
    bcmStatGroupModeSingleWithControl = 7, 
                                        /* A single counter used for all traffic
                                           types with an additional counter for
                                           control traffic */
    bcmStatGroupModeTrafficTypeWithControl = 8, 
                                        /* A dedicated counter per traffic type
                                           unicast, multicast, broadcast with an
                                           additional counter for control
                                           traffic */
    bcmStatGroupModeDlfAllWithControl = 9, 
                                        /* A pair of counters where the base
                                           counter is used for control, the next
                                           one for dlf and the other counter is
                                           used for all traffic types */
    bcmStatGroupModeDlfIntPriWithControl = 10, 
                                        /* N+2 counters where the base counter
                                           is used for control, the next one for
                                           dlf and next N are used per Cos */
    bcmStatGroupModeTypedWithControl = 11, 
                                        /* A dedicated counter for control,
                                           unknown unicast, known unicast,
                                           multicast, broadcast */
    bcmStatGroupModeTypedAllWithControl = 12, 
                                        /* A dedicated counter for control,
                                           unknown unicast, known
                                           unicast,multicast, broadcast and one
                                           for all traffic (not already counted) */
    bcmStatGroupModeTypedIntPriWithControl = 13, 
                                        /* A dedicated counter for control,
                                           unknown unicast, known unicast,
                                           multicast, broadcast and N internal
                                           priority counters for traffic (not
                                           already counted) */
    bcmStatGroupModeDot1P = 14,         /* A set of 8(2^3) counters selected
                                           based on Vlan priority */
    bcmStatGroupModeIntPri = 15,        /* A set of 16(2^4) counters based on
                                           internal priority */
    bcmStatGroupModeIntPriCng = 16,     /* A set of 64 counters(2^(4+2)) based
                                           on Internal priority+CNG */
    bcmStatGroupModeSvpType = 17,       /* A set of 2 counters(2^1) based on SVP
                                           type */
    bcmStatGroupModeDscp = 18,          /* A set of 64 counters(2^6) based on
                                           DSCP bits */
    bcmStatGroupModeDvpType = 19        /* A set of 2 counters(2^1) based on DVP
                                           type */
} <tt>bcm_stat_group_mode_t</tt>;

</pre></blockquote>
<a name=FLEX_COUNTER_INDEX_INFORMATION_table></a>
<h3>Table 100:   Flex Counter Index Information
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Group Mode</b></td><td><b>  Ingress Counter Index</b></td><td><b> Egress Counter Index
</b></td></tr><tr><td> bcmStatGroupModeSingle
 </td><td>         0) UNKNOWN PKT,CONTROL PKT,BPDU PKT,
            L2BC PKT,L2UC PKT,L2DLF PKT, 
            UNKNOWN IPMC PKT,KNOWN IPMC PKT,KNOWN L2MC PKT,               
            UNKNOWN L2MC PKT,UNKNOWN L2MC PKT,KNOWN L3UC PKT,             
            UNKNOWN L3UC PKT,KNOWN MPLS PKT,KNOWN MPLS L3 PKT,            
            KNOWN MPLS L2 PKT,UNKNOWN MPLS PKT,KNOWN MIM PKT,             
            UNKNOWN MIM PKT,KNOWN MPLS MULTICAST PKT
 </td><td>         0) Unicast , Multicast 
</td></tr><tr><td> bcmStatGroupModeTrafficType
 </td><td>         0) L2UC PKT , KNOWN L3UC PKT , UNKNOWN L3UC PKT
<p>         1) KNOWN L2MC PKT,UNKNOWN L2MC PKT
<p>         2) L2BC PKT
</td><td>         0) Unicast,
<p>         1) Multicast
</td></tr><tr><td> bcmStatGroupModeDlfAll
 </td><td>         0) L2DLF PKT                                               
<p>         1) UNKNOWN PKT , CONTROL PKT,BPDU PKT,L2BC PKT,L2UC PKT,    
            L2DLF PKT,UNKNOWN IPMC PKT,KNOWN IPMC PKT,KNOWN L2MC PKT, 
            UNKNOWN L2MC PKT,UNKNOWN L2MC PKT,KNOWN L3UC PKT,          
            UNKNOWN L3UC PKT,KNOWN MPLS PKT,KNOWN MPLS L3 PKT
 </td><td>         -- bcmStatGroupModeSingle --
</td></tr><tr><td> bcmStatGroupModeDlfIntPri
 </td><td>         0) L2 DLF             
<p>         1..16) INT PRI(0 to 15)
 </td><td>         -- bcmStatGroupModeTypedIntPri --
</td></tr><tr><td> bcmStatGroupModeTyped
 </td><td>         0) UNKNOWN L3UC PKT                                     
<p>         1) L2UC PKT , KNOWN L3UC PKT                           
<p>         2) KNOWN L2MC PKT , UNKNOWN L2MC PKT                    
<p>         3) L2BC PKT                                          
 </td><td>         -- bcmStatGroupModeTrafficType --
</td></tr><tr><td> bcmStatGroupModeTypedAll
 </td><td>         0) UNKNOWN L3UC PKT
<p>         1) L2UC PKT , KNOWN L3UC PKT 
<p>         2) KNOWN L2MC PKT,UNKNOWN L2MC PKT 
<p>         3) L2BC PKT 
<p>         4) UNKNOWN PKT , CONTROL PKT, BPDU PKT, L2DLF PKT, 
            UNKNOWN IPMC PKT, KNOWN IPMC PKT, KNOWN MPLS PKT, 
            KNOWN MPLS L3 PKT, KNOWN MPLS L2 PKT, UNKNOWN MPLS PKT, 
            KNOWN MIM PKT, UNKNOWN MIM PKT, 
            KNOWN MPLS MULTICAST PKT                           
 </td><td>         -- bcmStatGroupModeTrafficType --
</td></tr><tr><td> bcmStatGroupModeTypedIntPri
 </td><td>         0)     UNKNOWN L3UC PKT 
<p>         1)     L2UC PKT , KNOWN L3UC PKT 
<p>         2)     KNOWN L2MC PKT , UNKNOWN L2MC PKT                            
<p>         3)     L2BC PKT                                                  
<p>         4..19) INT PRI (0 to 15). 
 </td><td>         0)     Unicast        
<p>         1)     Multicast       
<p>         2..17) INT PRI (0 to 15)
</td></tr><tr><td> bcmStatGroupModeSingleWithControl
 </td><td>         0) UNKNOWN PKT,L2BC PKT,L2UC PKT,L2DLF PKT, 
            UNKNOWN IPMC PKT,KNOWN IPMC PKT,KNOWN L2MC PKT,              
            UNKNOWN L2MC PKT,UNKNOWN L2MC PKT,KNOWN L3UC PKT,           
            UNKNOWN L3UC PKT,KNOWN MPLS PKT,KNOWN MPLS L3 PKT,         
            KNOWN MPLS L2 PKT,UNKNOWN MPLS PKT,KNOWN MIM PKT,         
            UNKNOWN MIM PKT,KNOWN MPLS MULTICAST PKT                 
<p>         1) CONTROL PKT,BPDU PKT                                    
 </td><td>         -- bcmStatGroupModeSingle --
</td></tr><tr><td> bcmStatGroupModeTrafficTypeWithControl
 </td><td>         0) L2UC PKT, KNOWN L3UC PKT, UNKNOWN L3UC PKT           
<p>         1) KNOWN L2MC PKT, UNKNOWN L2MC PKT,                    
<p>         2) L2BC PKT,                                          
<p>         3) CONTROL PKT, BPDU PKT                              
</td><td>         -- bcmStatGroupModeTrafficType --
</td></tr><tr><td> bcmStatGroupModeDlfAllWithControl
 </td><td>         0) CONTROL PKT,BPDU PKT                                        
<p>         1) L2DLF PKT                                                  
<p>         2)UNKNOWN PKT , CONTROL PKT,BPDU PKT,L2BC PKT,L2UC PKT,      
           L2DLF PKT,UNKNOWN IPMC PKT,KNOWN IPMC PKT,KNOWN L2MC PKT, 
           UNKNOWN L2MC PKT,UNKNOWN L2MC PKT,KNOWN L3UC PKT,        
           UNKNOWN L3UC PKT,KNOWN MPLS PKT,KNOWN MPLS L3 PKT,      
           KNOWN MPLS L2 PKT,UNKNOWN MPLS PKT,KNOWN MIM PKT,      
           UNKNOWN MIM PKT,KNOWN MPLS MULTICAST PKT              
 </td><td>         -- bcmStatGroupModeTrafficType --
</td></tr><tr><td> bcmStatGroupModeDlfIntPriWithControl
 </td><td>         0) CONTROL PKT,BPDU PKT                                       
<p>         1) L2 DLF                                                    
<p>         2..17) INT PRI (0 to 15)
 </td><td>         -- bcmStatGroupModeTypedIntPri --
</td></tr><tr><td> bcmStatGroupModeTypedWithControl
 </td><td>         0) CONTROL PKT,BPDU PKT                                          
<p>         1) UNKNOWN L3UC PKT                                             
<p>         2) L2UC PKT , KNOWN L3UC PKT                                   
<p>         3) KNOWN L2MC PKT,UNKNOWN L2MC PKT                            
<p>         4) L2BC PKT                                                  
 </td><td>         -- bcmStatGroupModeTrafficType --
</td></tr><tr><td> bcmStatGroupModeTypedAllWithControl
 </td><td>         0) CONTROL PKT,BPDU PKT                                           
<p>         1) UNKNOWN L3UC PKT                                              
<p>         2) L2UC PKT , KNOWN L3UC PKT                                    
<p>         3) KNOWN L2MC PKT,UNKNOWN L2MC PKT                             
<p>         4) L2BC PKT                                                   
<p>         5) UNKNOWN PKT,L2DLF PKT,UNKNOWN IPMC PKT,KNOWN IPMC PKT     
            KNOWN MPLS PKT , KNOWN MPLS L3 PKT,KNOWN MPLS L2 PKT,    
            UNKNOWN MPLS PKT,KNOWN MIM PKT,UNKNOWN MIM PKT,         
            KNOWN MPLS MULTICAST PKT                               
 </td><td>         -- bcmStatGroupModeTrafficType --
</td></tr><tr><td> bcmStatGroupModeTypedIntPriWithControl
 </td><td>         0) CONTROL PKT,BPDU PKT                                         
<p>         1) UNKNOWN L3UC PKT                                            
<p>         2) L2UC PKT , KNOWN L3UC PKT                                  
<p>         3) KNOWN L2MC PKT,UNKNOWN L2MC PKT                           
<p>         4) L2BC PKT                                                 
<p>         5..20) INT PRI (0 to 15)
 </td><td>         -- bcmStatGroupModeTypedIntPri --
</td></tr><tr><td> bcmStatGroupModeDot1P
 </td><td>         0..7) Vlan priority 0 to 7
 </td><td>         0..7) Vlan priority 0 to 7
</td></tr><tr><td> bcmStatGroupModeIntPri
 </td><td>         0..15) Internal Priority(0 to 15)
 </td><td>         0..15) Internal Priority(0 to 15)
</td></tr><tr><td> bcmStatGroupModeIntPriCng
 </td><td>         0..64) Internal priority(4y's) + CNG(2x's) (xx-yyyy)
 </td><td>         0..64) Internal priority(4y's) + CNG(2x's) (xx-yyyy)
</td></tr><tr><td> bcmStatGroupModeSvpType
 </td><td>         0..1) Source Virtual Port Type
 </td><td>         0..1) Source Virtual Port Type
</td></tr><tr><td> bcmStatGroupModeDscp
 </td><td>         0..63) DSCP bits 
 </td><td>         0..63) DSCP bits 
</td></tr><tr><td> bcmStatGroupModeDvpType
 </td><td>         -- Not Supported --
 </td><td>         0..1) Destination Virtual Port Type
</td></tr></tbody></table>Following sequence should be followed for creating,attaching,detaching and destroying counters.
<ul><li>Create a specific flex counter group for a specific stat object. Use returned <tt>stat_counter_id</tt> for
attaching flex counters and destroying flex counter group. 
<p><tt>bcm_stat_group_create</tt>(unit,&lt;<tt>bcm_stat_object_t</tt>&gt;,&lt;<tt>bcm_stat_group_mode_t</tt>&gt;, 
                      &amp;<tt>stat_counter_id</tt>,&amp;<tt>num_entries</tt>);
</li><li>Attach Flex Counters to created flex counter group.
<p>bcm_&lt;port|vlan|<tt>l3_vrf</tt>|<tt>vlan_translate</tt>|<tt>vlan_translate_egress</tt>|<tt>l3_ingress</tt>|
     <tt>l3_egress</tt>|field|<tt>mpls_port</tt>|<tt>mpls_label</tt>&gt;<tt>_stat_attach</tt>(unit,...,<tt>stat_counter_id</tt>);
</li><li>Get/Set values of attached Flex counters.
<p>bcm_&lt;port|vlan|<tt>l3_vrf</tt>|<tt>vlan_translate</tt>|<tt>vlan_translate_egress</tt>|<tt>l3_ingress</tt>|
     <tt>l3_egress</tt>|field|<tt>mpls_port</tt>|<tt>mpls_label</tt>&gt;<tt>_stat_counter_</tt>(get|set)(unit,...);
</li><li>Detach Flex Counters from created flex counter group.
<p>bcm_&lt;port|vlan|<tt>l3_vrf</tt>|<tt>vlan_translate</tt>|<tt>vlan_translate_egress</tt>|<tt>l3_ingress</tt>|
     <tt>l3_egress</tt>|field|<tt>mpls_port</tt>|<tt>mpls_label</tt>&gt;<tt>_stat_detach</tt>(unit,...)
</li><li>Destroy created Flex counter group.
<p><tt>bcm_stat_group_destroy</tt>(unit,<tt>stat_counter_id</tt>);
</li></ul><p><hr noshade>
<h3>APIs for Section 5.3.20:  stat
</h3>
<a name=bcm_stat_group_create></a>
<hr noshade>
<h2 class="api">
<tt>bcm_stat_group_create</tt><br>
</h2>

<blockquote>
Create Counter Entries group for given accounting object
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/stat.h&gt;
int 
bcm_stat_group_create (
    int                   unit,
    bcm_stat_object_t     object,
    bcm_stat_group_mode_t group_mode,
    uint32                *stat_counter_id,
    uint32                *num_entries);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>object</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Accounting Object
</td></tr>
<tr><td class="arg" valign="top"><tt>Group_mode</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Group Mode
</td></tr>
<tr><td class="arg" valign="top"><tt>Stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter Id
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Number of Counter entries created
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will reserve HW counter resources as per given group mode and 
Accounting object and make system ready for further stat collection action
based on stat counter id. 
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<a name=bcm_stat_group_destroy></a>
<hr noshade>
<h2 class="api">
<tt>bcm_stat_group_destroy</tt><br>
</h2>

<blockquote>
Destroy counter Entries group
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/stat.h&gt;
int 
bcm_stat_group_destroy (
    int    unit,
    uint32 stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Counter Mode Id
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will release HW counter resources as per given counter id and makes 
system unavailable for any further stat collection action based on stat counter
id. 
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<a name=bcm_stat_group_dump_all></a>
<hr noshade>
<h2 class="api">
<tt>bcm_stat_group_dump_all</tt><br>
</h2>

<blockquote>
Dump contents of all configured groups
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/stat.h&gt;
int 
bcm_stat_group_dump_all (int unit);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will display all important information about all stat object and 
groups.The information is displayed through the debug output channel.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<a name=bcm_stat_group_dump></a>
<hr noshade>
<h2 class="api">
<tt>bcm_stat_group_dump</tt><br>
</h2>

<blockquote>
Dump contents of specified group
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/stat.h&gt;
int 
bcm_stat_group_dump (
    int                   unit,
    bcm_stat_object_t     object,
    bcm_stat_group_mode_t group_mode);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>object</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Accounting Object
</td></tr>
<tr><td class="arg" valign="top"><tt>Group_mode</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Group Mode
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will display all important information about specified stat object 
and group.The information is displayed through the debug output channel.
</blockquote><h3>RETURNS</h3><blockquote>
<tt>BCM_E_XXX</tt>
</blockquote>
<br><hr noshade><a name="switch"></a>
<h3>Section 5.3.21:   Switch Control
</h3>

<a name=bcm_switchs></a>
<h3>Table 101:   Switch Type Values
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b> Value
 </b></td><td><b> Description
 </b></td><td><b> Arg Value
</b></td></tr><tr><td><tt>bcmSwitchCallbackAbortOnError</tt></td><td> This controls the decision to abort or not if a user callback returns an error code.
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchHashL2DualLeastFull</tt></td><td> Use least full bank in dual hash L2 tables.
 </td><td><tt>&gt;=0</tt></td></tr><tr><td><tt>bcmSwitchHashL3DualLeastFull</tt></td><td> Use least full bank in dual hash L3 tables.
 </td><td><tt>&gt;=0</tt></td></tr><tr><td><tt>bcmSwitchHashMPLSDualLeastFull</tt></td><td> Use least full bank in dual hash MPLS tables.
 </td><td><tt>&gt;=0</tt></td></tr><tr><td><tt>bcmSwitchHashWlanPort</tt></td><td> Hash select for Wlan SVP entry.
 </td><td> Same as bcmSwitchHashL2
</td></tr><tr><td><tt>bcmSwitchHashWlanPortDual</tt></td><td> Second hash select for Wlan SVP entry.
 </td><td> Same as bcmSwitchHashL2
</td></tr><tr><td><tt>bcmSwitchHashWlanClient</tt></td><td> Hash select for Wlan client database.
 </td><td> Same as bcmSwitchHashL2
</td></tr><tr><td><tt>bcmSwitchHashWlanClientDual</tt></td><td> Second hash select for Wlan client database.
 </td><td> Same as bcmSwitchHashL2
</td></tr><tr><td><tt>bcmSwitchOamCcmToCpu</tt></td><td> Enable switching an unexpected MEPID or Interval to CPU. The default value is FALSE. Supported on BCM56440 series of devices.
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchOamXconCcmToCpu</tt></td><td> Enable switching CCM with low MDL or unexpected MAID to CPU. The default value is FALSE. Supported on BCM56440 series of devices.
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchOamXconOtherToCpu</tt></td><td> Enable switching other than CCM OAM PDU with low OAM MDL value to CPU. The default value is FALSE. Supported on BCM56440 series of devices.
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchPFCQueue0Class</tt></td><td> Priority Flow Control class for COS queue 0.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchPFCQueue1Class</tt></td><td> Priority Flow Control class for COS queue 1.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchPFCQueue2Class</tt></td><td> Priority Flow Control class for COS queue 2.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchPFCQueue3Class</tt></td><td> Priority Flow Control class for COS queue 3.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchPFCQueue4Class</tt></td><td> Priority Flow Control class for COS queue 4.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchPFCQueue5Class</tt></td><td> Priority Flow Control class for COS queue 5.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchPFCQueue6Class</tt></td><td> Priority Flow Control class for COS queue 6.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchPFCQueue7Class</tt></td><td> Priority Flow Control class for COS queue 7.
 </td><td><tt>0x0-0x7</tt> or PFC priority class
</td></tr><tr><td><tt>bcmSwitchIngParseL2TunnelTermDipSipSelect</tt></td><td> Controls the values used to populate the DIP,SIP containers for L2 tunnel terminated packets
 </td><td><tt>TRUE/FALSE</tt> for DIP/SIP
</td></tr><tr><td><tt>bcmSwitchIngParseL3L4IPv4</tt></td><td> Enable parsing of IPv4 L3/L4 headers in L2 tunnel payload
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchIngParseL3L4IPv6</tt></td><td> Enable parsing of IPv6 L3/L4 headers in L2 tunnel payload
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchSetWredJitterMask</tt></td><td> Enable setting of WRED jitter MASK
 </td><td><tt>WRED</tt> Jitter Mask Value
</td></tr><tr><td><tt>bcmSwitchL3IngressInterfaceMapSet</tt></td><td> 0 - Traditional VLAN to L3 Ingress Interface Identity mapping. (default)
      1 - Configurable VLAN to L3 IIF mapping to support Strict URPF mode.
          L3 Interfaces (L3-IIF) for L3 Interfaces are constructed 
          using <tt>bcm_l3_ingress_create</tt>(<tt>WITH_REPLACE</tt> flag).
 </td><td><tt>0/1</tt></td></tr><tr><td><tt>bcmSwitchMplsPWControlWordToCpu</tt></td><td> Enable MPLS packets with PWACH control word, to be copied to CPU
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchMplsPWControlTypeToCpu</tt></td><td> Enable MPLS packets with other control word, to be copied to CPU
 </td><td><tt>TRUE/FALSE</tt></td></tr><tr><td><tt>bcmSwitchMplsPWCountPktsAll</tt></td><td> Enable count-all MPLS packets arriving on PWs
 </td><td><tt>TRUE/FALSE</tt></td></tr></tbody></table><p><br><hr noshade><a name="time"></a>
<h3>Section 5.3.22:   Time
</h3>
<p>A new member <tt>clk_resolution</tt> has been added to <tt>bcm_time_interface_t</tt> to dentoe the refernce clock resolution 
<blockquote><pre>typedef struct <tt>bcm_time_interface_s</tt> {
    uint32          flags;        /* Flags <tt>BCM_TIME_</tt>* */               
    <tt>bcm_time_if_t</tt>   id;           /* Time Interface Identifier */      
    <tt>bcm_time_spec_t</tt> drift         /* Drif numerator out of 125 MHz */  
    <tt>bcm_time_spec_t</tt> offset;       /* Offset */                         
    <tt>bcm_time_spec_t</tt> accuracy;     /* Accuracy */                       
    int <tt>heartbeat_hz</tt>;             /* HeartBeat Rate in Hertz*/                 
    int <tt>clk_resolution</tt>;           /* Reference clock resolution in nsecs */                 
} <tt>bcm_time_interface_t</tt>;                                                
</pre></blockquote><p>The following Time capture flags have been added
<h3>Table 102:   BCM Time Capture Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Description
</b></td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_GPIO_0</tt></td><td> Capture Time at rising edge of GPIO 0
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_GPIO_1</tt></td><td> Capture Time at rising edge of GPIO 1
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_GPIO_2</tt></td><td> Capture Time at rising edge of GPIO 2
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_GPIO_3</tt></td><td> Capture Time at rising edge of GPIO 3
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_GPIO_4</tt></td><td> Capture Time at rising edge of GPIO 4
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_GPIO_5</tt></td><td> Capture Time at rising edge of GPIO 5
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_L1_CLOCK_PRIMARY</tt></td><td> Capture Time at rising edge of primary L1
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_L1_CLOCK_SECONDARY</tt></td><td> Capture Time at rising edge of primary L2
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_LCPLL</tt></td><td> Capture Time at rising edge of LCPLL
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_IP_DM_0</tt></td><td> Capture Time at rising edge of DM0
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_IP_DM_1</tt></td><td> Capture Time at rising edge of DM1
</td></tr><tr><td>  <tt>BCM_TIME_CAPTURE_IMMEDIATE</tt></td><td> Capture Immediate
</td></tr></tbody></table><p><hr noshade>
<h3>APIs for Section 5.3.22:  Time
</h3>
<a name=bcm_time_trigger_enable_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_time_trigger_enable_set</tt><br>
</h2>

<blockquote>
Set External time capture modes
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/time.h&gt;
extern int bcm_time_trigger_enable_set (int unit, bcm_time_if_t id, uint32 mode_flags);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
                BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>id</tt></td><td>&nbsp;&nbsp;</td><td>
 A Time Synchronization Interface identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>mode_flags</tt></td><td>&nbsp;&nbsp;</td><td>
 External Clock Mode flags
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Set External time capture modes
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 - Success 
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 - Feature is not available
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
 - Any other error
</td></tr>
</table></blockquote>
<a name=bcm_time_trigger_enable_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_time_trigger_enable_get</tt><br>
</h2>

<blockquote>
Get External time capture modes
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/time.h&gt;
extern int bcm_time_trigger_enable_get (int unit, bcm_time_if_t id, uint32 *mode_flags);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
                BCM device number
</td></tr>
<tr><td class="arg" valign="top"><tt>id</tt></td><td>&nbsp;&nbsp;</td><td>
 A Time Synchronization Interface identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>mode_flags</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) External Clock Mode flags
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Get External time capture modes
</blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 - Success 
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 - Feature is not available
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_XXX</tt></td><td>&nbsp;&nbsp;</td><td>
 - Any other error
</td></tr>
</table></blockquote>
<br><hr noshade><a name="trunk"></a>
<h3>Section 5.3.23:   Trunk Management
</h3>
<p>The following trunk member flag has been added
<h3>Table 103:   BCM Trunk Member Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>BCM_TRUNK_MEMBER_UNICAST_EGRESS_DISABLE</tt></td><td> Member will not be a part of the distributor members to be hashed for unicast packets.
</td></tr></tbody></table><p><br><hr noshade><a name="tunnel"></a>
<h3>Section 5.3.24:   Tunnel Management
</h3>
<p>The following tunnel control flag has been added
<h3>Table 104:   BCM Tunnel Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>BCM_TUNNEL_TERM_WLAN_SET_ROAM</tt></td><td> Set wlan ha/fa roaming model.
</td></tr></tbody></table><p><br><hr noshade><a name="TxBeacon"></a>
<h3>Section 5.3.25:   TxBeacon
</h3>
<p>For CMICm devices the TXBEACON APIs provide methods to set up the 
automatic transmission of packets onto the network whenever the host 
is suspended (presumably for a warm reboot).
<p>The packet contents are sent to the CMICm microprocessor along with a
time interval.  Whenever the CMICm microprocessor system detects that the
host is down (via non-response to a "ping" message) the CMICm subsystem
sends the packet repeatedly at the specified interval.  This continues
until the host informs the CMCIm subsystem to stop (presumably
following a host reboot)
<p>The following type is used to pass packet information between the host
and the CMCIm microprocessor subsystem.
<blockquote><pre>typedef struct <tt>bcm_txbeacon_s</tt> {
    uint32 flags;                   /* Flags indicating action of API */
    uint16 len;                     /* length in bytes
                                       NOTE: IN/OUT */
    uint16 maxlen;                  /* max len (in case of modification)
                                       NOTE: IN/OUT */
    <tt>bcm_txbeacon_pkt_id_t</tt> <tt>pkt_id</tt>;   /* Packet ID from the uC.  NOTE: IN/OUT */
    uint16 port;                    /* local port */
    uint16 interval;                /* interval to send packet in mSeconds */
    uint16 count;                   /* Num times to send the pkt or 0 (forever) */
    uint8 *<tt>pkt_data</tt>;                /* Pointer to packet NOTE: IN/OUT */
} <tt>bcm_txbeacon_t</tt>;
</pre></blockquote>The following type is used for supplying function pointers to callbacks.
<blockquote><pre>typedef int (*<tt>bcm_txbeacon_traverse_cb_t</tt>)(
    int unit, 
    <tt>bcm_txbeacon_t</tt> *tx, 
    void *<tt>user_data</tt>);
</pre></blockquote><p><hr noshade>
<h3>APIs for Section 5.3.25:  TxBeacon
</h3>
<a name=bcm_txbeacon_init></a>
<hr noshade>
<h2 class="api">
<tt>bcm_txbeacon_init</tt><br>
</h2>

<blockquote>
Init routine for TX beacon
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/txbeacon.h&gt;
int
bcm_txbeacon_init(int unit, int uC);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>uC</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Microcontroller number.
</td></tr>
</table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 feature not available or not loaded on CMCIm
</td></tr>
</table></blockquote>
<a name=bcm_txbeacon_pkt_setup></a>
<hr noshade>
<h2 class="api">
<tt>bcm_txbeacon_pkt_setup</tt><br>
</h2>

<blockquote>
Add a packet for TX beacon
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/txbeacon.h&gt;
int
bcm_txbeacon_pkt_setup(
    int unit,
    bcm_txbeacon_t *txbeacon);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>txbeacon</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Data structure describing a pkt to beacon.
</td></tr>
</table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 feature not available or not loaded on CMCIm
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INIT</tt></td><td>&nbsp;&nbsp;</td><td>
 Not initialized
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_FAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 Bad message reply from CMCIm
</td></tr>
</table></blockquote>
<a name=bcm_txbeacon_destroy></a>
<hr noshade>
<h2 class="api">
<tt>bcm_txbeacon_destroy</tt><br>
</h2>

<blockquote>
Remove this packet from the txbeacon list
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/txbeacon.h&gt;
int bcm_txbeacon_destroy( 
   int unit,
    bcm_txbeacon_pkt_id_t pkt_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>pkt_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) ID of packeet to remove from txbeacon list
</td></tr>
</table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 feature not available or not loaded on CMCIm
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INIT</tt></td><td>&nbsp;&nbsp;</td><td>
 Not initialized
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_FAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 Bad message reply from CMCIm
</td></tr>
</table></blockquote>
<a name=bcm_txbeacon_pkt_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_txbeacon_pkt_get</tt><br>
</h2>

<blockquote>
Lookup packet beacon info structure
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/txbeacon.h&gt;
int bcm_txbeacon_pkt_get(
    int unit,
    bcm_txbeacon_t *txbeacon);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>txbeacon</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN/OUT) Data structure describing a pkt to beacon.
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
Find the packet with the minimum packt ID which is greater
than or equal to the <tt>pkt_id</tt> in the txbeacon into.  This can
be used in a loop to recover all of the packets by starting
with zero and then incrementing the returned <tt>pkt_id</tt> until a
zero <tt>pkt_id</tt> is returned.
<p>The txbeacon info must be filled in with the <tt>pkt_id</tt>, and a
<tt>pkt_pointer</tt>.  Up to maxlen bytes are copied into 
<tt>pkt_pointer</tt>.
</blockquote><a name=bcm_txbeacon_start></a>
<hr noshade>
<h2 class="api">
<tt>bcm_txbeacon_start</tt><br>
</h2>

<blockquote>
Start beacon for this packet or all
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/txbeacon.h&gt;
int bcm_txbeacon_start(
     int unit,
     bcm_txbeacon_pkt_id_t pkt_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>pkt_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) ID of packet to start or zero (start all)
</td></tr>
</table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 feature not available or not loaded on CMCIm
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INIT</tt></td><td>&nbsp;&nbsp;</td><td>
 Not initialized
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_FAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 Bad message reply from CMCIm
</td></tr>
</table></blockquote>
<a name=bcm_txbeacon_stop></a>
<hr noshade>
<h2 class="api">
<tt>bcm_txbeacon_stop</tt><br>
</h2>

<blockquote>
Start beacon for this packet or all
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/txbeacon.h&gt;
int bcm_txbeacon_stop(
     int unit,
     bcm_txbeacon_pkt_id_t pkt_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>pkt_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) ID of packet to stop or zero (start all)
</td></tr>
</table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 feature not available or not loaded on CMCIm
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INIT</tt></td><td>&nbsp;&nbsp;</td><td>
 Not initialized
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_FAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 Bad message reply from CMCIm
</td></tr>
</table></blockquote>
<a name=bcm_txbeacon_traverse></a>
<hr noshade>
<h2 class="api">
<tt>bcm_txbeacon_traverse</tt><br>
</h2>

<blockquote>
Traverse the tx beacon packets
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>int
bcm_txbeacon_traverse(
    int unit,
    bcm_txbeacon_traverse_cb_t trav_fn,
    void *user_data)
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>trav_fn</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Traverse function
</td></tr>
<tr><td class="arg" valign="top"><tt>user_data</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) User data to pass to rraverse function
</td></tr>
</table></blockquote><h3>RETURNS</h3><blockquote>
<table summary="return" cellpadding=2><tr><td class="arg" valign="top"><tt>BCM_E_NONE</tt></td><td>&nbsp;&nbsp;</td><td>
 Operation completed successfully
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_UNAVAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 feature not available or not loaded on CMCIm
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_INIT</tt></td><td>&nbsp;&nbsp;</td><td>
 Not initialized
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_MEMORY</tt></td><td>&nbsp;&nbsp;</td><td>
 Out of memory
</td></tr>
<tr><td class="arg" valign="top"><tt>BCM_E_FAIL</tt></td><td>&nbsp;&nbsp;</td><td>
 Bad message reply from CMCIm
</td></tr>
</table></blockquote>
*************************************************************
<br><hr noshade><a name="vlan"></a>
<h3>Section 5.3.26:   VLAN Manangement
</h3>
<p>The following new actions have been added to the <tt>bcm_vlan_action_set_t</tt> structure
<h3>Table 105:   VLAN action set
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  member</b></td><td><b> Purpose
</b></td></tr><tr><td>  <tt>new_inner_pkt_prio</tt></td><td> New inner packet priority for Add/Replace actions
</td></tr><tr><td>  <tt>new_outer_cfi</tt></td><td> New outer packet CFI for Add/Replace actions
</td></tr><tr><td>  <tt>new_inner_cfi</tt></td><td> New inner packet CFI for Add/Replace actions
</td></tr><tr><td>  <tt>dt_outer_pkt_prio</tt></td><td> Outer packet PRI for double tagged packets
</td></tr><tr><td>  <tt>dt_outer_cfi</tt></td><td> Outer packet CFI for double tagged packets
</td></tr><tr><td>  <tt>dt_inner_pkt_prio</tt></td><td> Inner packet PRI for double tagged packets
</td></tr><tr><td>  <tt>dt_inner_cfi</tt></td><td> Inner packet CFI for double tagged packets
</td></tr><tr><td>  <tt>ot_outer_pkt_prio</tt></td><td> Outer packet PRI for single outer tagged packets
</td></tr><tr><td>  <tt>ot_outer_cfi</tt></td><td> Outer packet CFI for single outer tagged packets
</td></tr><tr><td>  <tt>it_outer_pkt_prio</tt></td><td> Outer packet PRI for single inner tagged packets
</td></tr><tr><td>  <tt>it_inner_cfi</tt></td><td> Inner packet CFI for single inner tagged packets
</td></tr><tr><td>  <tt>ot_inner_pkt_prio</tt></td><td> Inner packet PRI for single outer tagged packets
</td></tr><tr><td>  <tt>ot_inner_cfi</tt></td><td> Inner packet CFI for single outer tagged packets
</td></tr><tr><td>  <tt>it_outer_pkt_prio</tt></td><td> Outer packet PRI for single inner tagged packets
</td></tr><tr><td>  <tt>it_outer_cfi</tt></td><td> Outer packet CFI for single inner tagged packets
</td></tr><tr><td>  <tt>it_inner_pkt_prio</tt></td><td> inner packet PRI for single inner tagged packets
</td></tr><tr><td>  <tt>it_inner_cfi</tt></td><td> inner packet CFI for single inner tagged packets
</td></tr><tr><td>  <tt>ut_outer_pkt_prio</tt></td><td> Outer packet PRI for single untagged packets
</td></tr><tr><td>  <tt>ut_outer_cfi</tt></td><td> Outer packet CFI for single untagged packets
</td></tr><tr><td>  <tt>ut_inner_pkt_prio</tt></td><td> inner packet PRI for single untagged packets
</td></tr><tr><td>  <tt>ut_inner_cfi</tt></td><td> inner packet CFI for single untagged packets
</td></tr><tr><td>  <tt>policer_id</tt></td><td> Base policer id
</td></tr></tbody></table><p>The structure <tt>bcm_vlan_control_t</tt> has a new member <tt>ingress_if</tt> to indicate mapped ingress interface
<blockquote><pre>typedef struct {
    <tt>bcm_vrf_t</tt>               vrf;
    <tt>bcm_vlan_t</tt>              <tt>forwarding_vlan</tt>;
    <tt>bcm_if_t</tt>                <tt>ingress_if</tt>;
    uint16                  <tt>outer_tpid</tt>;
    uint32                  flags;     
    <tt>bcm_vlan_mcast_flood_t</tt>  <tt>ip6_mcast_flood_mode</tt>;
    <tt>bcm_vlan_mcast_flood_t</tt>  <tt>ip4_mcast_flood_mode</tt>;
    <tt>bcm_vlan_mcast_flood_t</tt>  <tt>l2_mcast_flood_mode</tt>;
    int                     <tt>if_class_id</tt>;
    <tt>bcm_vlan_forward_t</tt>      <tt>forwarding_mode</tt>;
    <tt>bcm_vlan_urpf_mode_t</tt>    <tt>urpf_mode</tt>;
    <tt>bcm_cos_queue_t</tt>         cosq;
    <tt>bcm_fabric_distribution_t</tt> <tt>distribution_class</tt>;
    <tt>bcm_multicast_t</tt>         <tt>broadcast_group</tt>;
    <tt>bcm_multicast_t</tt>         <tt>unknown_multicast_group</tt>;
    <tt>bcm_multicast_t</tt>         <tt>unknown_unicast_group</tt>;
    <tt>bcm_multicast_t</tt>         <tt>trill_nonunicast_group</tt>;
    <tt>bcm_trill_name_t</tt>        <tt>source_trill_name</tt>;
    int                     <tt>trunk_index</tt>;
} <tt>bcm_vlan_control_vlan_t</tt>;
</pre></blockquote><p><hr noshade>
<h3>APIs for Section 5.3.26:  VLAN Manangement
</h3>
<a name=bcm_vlan_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_stat_attach</tt><br>
</h2>

<blockquote>
Attach   counter entries to the given vlan.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_stat_attach(
    int        unit,
    bcm_vlan_t vlan,
    uint32     stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach   counter to the given vlan/vpn.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_stat_detach</tt><br>
</h2>

<blockquote>
Detach   counter entries to the given vlan.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_stat_detach(
    int        unit,
    bcm_vlan_t vlan);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach   counter to the given vlan/vpn. 
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_stat_counter_get</tt><br>
</h2>

<blockquote>
Get the specified statistic to the indicated value for the specified VLAN.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int 
bcm_vlan_stat_counter_get(
    int              unit,
    bcm_vlan_t       vlan,
    bcm_vlan_stat_t  stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values for the specified VLAN.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_egress_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_egress_stat_attach</tt><br>
</h2>

<blockquote>
Attach counters for the given egress vlan translation table.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_egress_stat_attach(
    int        unit,
    int        port_class,
    bcm_vlan_t outer_vlan,
    bcm_vlan_t inner_vlan,
    uint32     stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port_class</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port class
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach counters for the given egress vlan translation table.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_egress_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_egress_stat_detach</tt><br>
</h2>

<blockquote>
Detach counters for the given egress vlan translation table.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_egress_stat_detach(
    int        unit,
    int        port_class,
    bcm_vlan_t outer_vlan,
    bcm_vlan_t inner_vlan);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port_class</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port Class
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detach counters for the given egress vlan translation table.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_egress_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_egress_stat_counter_get</tt><br>
</h2>

<blockquote>
Get counter values from egress vlan translation table
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_egress_stat_counter_get(
    int              unit,
    int              port_class,
    bcm_vlan_t       outer_vlan,
    bcm_vlan_t       inner_vlan,
    bcm_vlan_stat_t  stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values)
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port_class</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) <tt>port_class</tt>
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values from egress VLAN 
translation table.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_egress_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_egress_stat_counter_set</tt><br>
</h2>

<blockquote>
Set counter values from egress vlan translation table 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_egress_stat_counter_set(
    int              unit,
    int              port_class
    bcm_vlan_t       outer_vlan,
    bcm_vlan_t       inner_vlan,
    bcm_vlan_stat_t  stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port_class</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port class
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set of counter statistic values from egress VLAN translation 
table.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_stat_counter_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_stat_counter_get</tt><br>
</h2>

<blockquote>
Get   counter values from ingress vlan translation table 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_stat_counter_get(
    int                      unit,
    bcm_gport_t              port,
    bcm_vlan_translate_key_t key_type,
    bcm_vlan_t               outer_vlan,
    bcm_vlan_t               inner_vlan,
    bcm_vlan_stat_t          stat,
    uint32                   num_entries,
    uint32                   *counter_indexes,
    bcm_stat_value_t         *counter_values)
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT (global port) identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>key_type</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN translation key type
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to retrieve
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will retrieve set of counter statistic values from VLAN translation 
table.
<p>The key type defines how the <tt>outer_vlan</tt> and <tt>inner_vlan</tt> are to be used.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_stat_counter_set</tt><br>
</h2>

<blockquote>
Set counter values into a ingress vlan translation table 
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_stat_counter_set(
    int                      unit,
    bcm_gport_t              port,
    bcm_vlan_translate_key_t key_type,
    bcm_vlan_t               outer_vlan,
    bcm_vlan_t               inner_vlan,
    bcm_vlan_stat_t          stat,
    uint32                   num_entries,
    uint32                   *counter_indexes,
    bcm_stat_value_t         *counter_values)
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT (global port) identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>key_type</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN translation key type
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
                            I.e. ingress/egress byte/packet
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set counter statistic values into a VLAN translation table.
The key type defines how the <tt>outer_vlan</tt> and <tt>inner_vlan</tt> are to be used.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_stat_attach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_stat_attach</tt><br>
</h2>

<blockquote>
Attach   counters entries for the given ingress vlan translation table.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_stat_attach(
    int                      unit,
    bcm_gport_t              port,
    bcm_vlan_translate_key_t key_type,
    bcm_vlan_t               outer_vlan,
    bcm_vlan_t               inner_vlan,
    uint32                   stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT (global port) identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>key_type</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN translation key type
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will attach   counters entries for the given ingress vlan translation 
table.
The key type defines how the <tt>outer_vlan</tt> and <tt>inner_vlan</tt> are to be used.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_stat_detach></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_stat_detach</tt><br>
</h2>

<blockquote>
Detach   counters entries for the given ingress vlan translation table.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_stat_detach(
    int                      unit,
    bcm_gport_t              port,
    bcm_vlan_translate_key_t key_type,
    bcm_vlan_t               outer_vlan,
    bcm_vlan_t               inner_vlan);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT (global port) identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>key_type</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN translation key type
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will detch counters entries for the given ingress vlan translation 
table.
The key type defines how the <tt>outer_vlan</tt> and <tt>inner_vlan</tt> are to be used.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_stat_counter_set></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_stat_counter_set</tt><br>
</h2>

<blockquote>
Set the specified statistic to the indicated value for the specified VLAN.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int 
bcm_vlan_stat_counter_set(
    int              unit,
    bcm_vlan_t       vlan,
    bcm_vlan_stat_t  stat,
    uint32           num_entries,
    uint32           *counter_indexes,
    bcm_stat_value_t *counter_values);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter to set
</td></tr>
<tr><td class="arg" valign="top"><tt>num_entries</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Number of counter Entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_indexes</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to Counter indexes entries
</td></tr>
<tr><td class="arg" valign="top"><tt>counter_values</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Pointer to counter values
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will set counter statistic values for the specified VLAN.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given vlan.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int 
bcm_vlan_stat_id_get(
    int              unit,
    bcm_vlan_t       vlan,
    bcm_vlan_stat_t  stat,
    uint32           *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN ID
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter id associated with given vlan.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_egress_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_egress_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given engress vlan translation table.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_egress_stat_id_get(
    int             unit,
    int             port_class,
    bcm_vlan_t      outer_vlan,
    bcm_vlan_t      inner_vlan,
    bcm_vlan_stat_t stat,
    uint32          *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port_class</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Port class
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given engress 
vlan translation table.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<a name=bcm_vlan_translate_stat_id_get></a>
<hr noshade>
<h2 class="api">
<tt>bcm_vlan_translate_stat_id_get</tt><br>
</h2>

<blockquote>
Get stat counter id associated with given ingress vlan translation table.
</blockquote><h3>SYNOPSIS</h3>
<blockquote><pre>#include &lt;bcm/vlan.h&gt;
int
bcm_vlan_translate_stat_id_get(
    int                      unit,
    bcm_gport_t              port,
    bcm_vlan_translate_key_t key_type,
    bcm_vlan_t               outer_vlan,
    bcm_vlan_t               inner_vlan,
    bcm_vlan_stat_t          stat,
    uint32                   *stat_counter_id);
</pre></blockquote><h3>PARAMETERS</h3>
<blockquote><table cellpadding=2 summary="parameters"><tr><td class="arg" valign="top"><tt>unit</tt></td><td>&nbsp;&nbsp;</td><td>
            (IN) Unit number.
</td></tr>
<tr><td class="arg" valign="top"><tt>port</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) GPORT (global port) identifier
</td></tr>
<tr><td class="arg" valign="top"><tt>key_type</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) VLAN translation key type
</td></tr>
<tr><td class="arg" valign="top"><tt>outer_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Outer VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>inner_vlan</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Inner VLAN ID or tag
</td></tr>
<tr><td class="arg" valign="top"><tt>stat</tt></td><td>&nbsp;&nbsp;</td><td>
 (IN) Type of the counter
</td></tr>
<tr><td class="arg" valign="top"><tt>stat_counter_id</tt></td><td>&nbsp;&nbsp;</td><td>
 (OUT) Stat Counter ID
</td></tr>
</table></blockquote><h3>DESCRIPTION</h3><blockquote>
This API will provide stat counter ids associated with given ingress 
vlan translation table.
</blockquote><h3>RETURNS</h3><blockquote>
BCM_E_xxx
</blockquote>
<br><hr noshade><a name="wlan"></a>
<h3>Section 5.3.27:   WLAN 
</h3>
<p>The following WLAN port configuration flag has been added
<h3>Table 106:   WLAN Port Configuration Flags
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Name</b></td><td><b> Purpose
</b></td></tr><tr><td> <tt>BCM_WLAN_PORT_ROAM_ENABLE</tt>
</td><td> Enable Roaming for the wlan port
</td></tr></tbody></table><p><br><hr noshade><a name="soc"></a>
<h3>Section 5.3.28:   SOC properties
</h3>
<p>The following new configuration properties are added

<a name=soc_properties_table></a>
<h3>Table 107:   SOC properites
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Define</b></td><td><b>  Property</b></td><td><b>  Type</b></td><td><b>  Default</b></td><td><b> Description
</b></td></tr><tr><td>  spn_CCMDMA_TIMEOUT_USEC</td><td>  <tt>ccmdma_timeout_usec</tt></td><td></td><td>  1000000</td><td> CCM DMA operation timeout in microseconds
</td></tr><tr><td>  spn_CCMDMA_INTR_ENABLE</td><td>  <tt>ccmdma_intr_enable</tt></td><td></td><td>  1</td><td> CCM DMA operation should use interrupt rather than poll for completion
</td></tr><tr><td>  spn_PHY_84753</td><td>  <tt>phy_84753</tt></td><td>  Port</td><td>  FALSE</td><td> This specifies the external PHY device is BCM84753.
</td></tr><tr><td>  spn_PHY_84754</td><td>  <tt>phy_84754</tt></td><td>  Port</td><td>  FALSE</td><td> This specifies the external PHY device is BCM84754.
</td></tr><tr><td>  spn_PHY_84064</td><td>  <tt>phy_84064</tt></td><td>  Port</td><td>  FALSE</td><td> This specifies the external PHY device is BCM84064.
</td></tr><tr><td>  spn_PHY_LANE0_L2P_MAP</td><td>  <tt>phy_lane0_l2p_map</tt></td><td>  Port</td><td>  0</td><td> Specify the physical lane number corresponding to the logical lane0 .
</td></tr><tr><td>  spn_PHY_PCS_REPEATER</td><td>  <tt>phy_pcs_repeater</tt></td><td>  Port</td><td>  0</td><td> Bypass the PCS retimer function to provide better latency. However it requires a more clean input clock than in retimer mode
</td></tr><tr><td>  spn_SERDES_RX_LOS</td><td>  <tt>serdes_rx_los</tt></td><td>  Port</td><td>  0</td><td> Enable serdes Loss Of Signal(LOS) function. 0 disable, 1 enable
</td></tr><tr><td>  spn_SERDES_RX_LOS_INVERT</td><td>  <tt>serdes_rx_los_invert</tt></td><td>  Port</td><td>  0</td><td> Invert serdes LOS signal level. 0 not invert, 1 invert
</td></tr><tr><td>  spn_MAC_LENGTH_CHECK_ENABLE</td><td>  <tt>mac_length_check_enable</tt></td><td>  Port</td><td>  0</td><td> Enable MAC to check 802.3 frame length field
</td></tr><tr><td>  spn_PHY_RX_LOS</td><td>  <tt>phy_rx_los</tt></td><td>  Port</td><td>  0</td><td> Enable Loss Of Signal(LOS) function. 0 disable, 1 enable
</td></tr><tr><td>  spn_PHY_RX_LOS_INVERT</td><td>  <tt>phy_rx_los_invert</tt></td><td>  Port</td><td>  0</td><td> Invert PHYs LOS signal level. 0 not invert, 1 invert
</td></tr><tr><td>  spn_PHY_MOD_ABS</td><td>  <tt>phy_mod_abs</tt></td><td>  Port</td><td>  0</td><td> Enable the module absent signalling function. 0 disable, 1 enable
</td></tr><tr><td>  spn_PHY_MOD_ABS_INVERT</td><td>  <tt>phy_mod_abs_invert</tt></td><td>  Port</td><td>  0</td><td> Invert PHYs <tt>MOD_ABS</tt> signal level. 0 not invert, 1 invert
</td></tr><tr><td>  spn_MEM_CHECK_MAX_OVERRIDE</td><td>  <tt>mem_check_max_override</tt></td><td></td><td>  0</td><td> Check for mem max override properties and reconfigure memories.
</td></tr><tr><td>  spn_IPV6_LPM_128B_ENABLE</td><td>  <tt>ipv6_lpm_128b_enable</tt></td><td></td><td>  0</td><td> Enable IPv6 128b prefix LPM routes.
</td></tr><tr><td>  spn_EXT_L2_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_l2_acl_table_scache_size</tt></td><td></td><td>  0xffffffff</td><td> Number of entries in the 288-bit external L2 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_L2_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_l2_acl_table_scache_size</tt></td><td></td><td>  0xffffffff</td><td> Number of entries in the 288-bit external L2 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_IP6S_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_ip6s_acl_table_scache_size</tt></td><td></td><td>  0</td><td> Number of entries in the 360-bit external IPv6 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_IP6F_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_ip6f_acl_table_scache_size</tt></td><td></td><td>  0</td><td> Number of entries in the 432-bit external IPv6 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_L2C_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_l2c_acl_table_scache_size</tt></td><td></td><td>  0</td><td> Number of entries in the 144-bit external L2 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_IP4C_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_ip4c_acl_table_scache_size</tt></td><td></td><td>  0</td><td> Number of entries in the 144-bit external IPv4 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_IP6C_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_ip6c_acl_table_scache_size</tt></td><td></td><td>  0</td><td> Number of entries in the 144-bit external IPv6 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_L2IP4_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_l2ip4_acl_table_scache_size</tt></td><td></td><td>  0</td><td> Number of entries in the 432-bit external L2 + IPv4 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_EXT_L2IP6_ACL_TABLE_SCACHE_SIZE</td><td>  <tt>ext_l2ip6_acl_table_scache_size</tt></td><td></td><td>  0</td><td> Number of entries in the 432-bit external L2 + IPv6 ACL table to reserve for use as warm-start scache. If a value is not specified, no entries are reserved, and the regular external scache is used for level-2 warm start. If a value is specified, that number of entries are reserved for use as the level-2 warm start scache. If the value specified is 0, an optimal number of reserved entries is calculated such that the reserved space will hold all usable entries.
</td></tr><tr><td>  spn_CCM_DMA_ENABLE</td><td>  <tt>ccm_dma_enable</tt></td><td></td><td>  0</td><td> Enable/Disable CCM DMA
</td></tr><tr><td>  spn_RUN_L2_SW_AGEING</td><td>  <tt>run_l2_sw_ageing</tt></td><td></td><td>  0</td><td> Run s/w based L2 ageing thread by default
</td></tr><tr><td>  spn_QE_LAG_UC_REDIST</td><td>  <tt>qe_lag_uc_redist</tt></td><td></td><td>  0</td><td> Nonzero to have the device redistribute unicast frames across aggregates based upon LBID, overriding the front-panel device distribution decision.
</td></tr><tr><td>  spn_QE_THRESH_DROP_LIMIT</td><td>  <tt>qe_thresh_drop_limit</tt></td><td></td><td>  -1</td><td></td></tr><tr><td>  spn_SIRIUS_DDR3_READ_VDL</td><td>  <tt>sirius_ddr3_read_vdl</tt></td><td></td><td>  -1</td><td></td></tr><tr><td>  spn_ISM_CONFIG_ESM_ENTRIES</td><td>  <tt>ism_config_esm_entries</tt></td><td></td><td>  4</td><td> Number of widest externel TCAM (ESM) data entries in terms of 1k quanta.
</td></tr><tr><td>  spn_ISM_CONFIG_XLATE_ENTRIES</td><td>  <tt>ism_config_xlate_entries</tt></td><td></td><td>  64</td><td> Number of widest vlan xlate entries in terms of 1k quanta.
</td></tr><tr><td>  spn_ISM_CONFIG_L2_ENTRIES</td><td>  <tt>ism_config_l2_entries</tt></td><td></td><td>  64</td><td> Number of widest l2 entries in terms of 1k quanta.
</td></tr><tr><td>  spn_ISM_CONFIG_L3_ENTRIES</td><td>  <tt>ism_config_l3_entries</tt></td><td></td><td>  16</td><td> Number of widest l3 entries in terms of 1k quanta.
</td></tr><tr><td>  spn_ISM_CONFIG_EGR_XLATE_ENTRIES</td><td>  <tt>ism_config_egr_xlate_entries</tt></td><td></td><td>  32</td><td> Number of widest egress vlan xlate entries in terms of 1k quanta.
</td></tr><tr><td>  spn_ISM_CONFIG_MPLS_ENTRIES</td><td>  <tt>ism_config_mpls_entries</tt></td><td></td><td>  16</td><td> Number of widest mpls entries in terms of 1k quanta.
</td></tr><tr><td>  spn_BCM88732_USE_OOB</td><td>  <tt>bcm88732_use_oob</tt></td><td></td><td>  1</td><td> BCM88732(Shadow) Flow Control Mode 0 = InBand(IB), 1 = OutofBand(OOB) Default is OOB for Shadow
</td></tr><tr><td>  spn_BCM88732_DEVICE_MODE</td><td>  <tt>bcm88732_device_mode</tt></td><td></td><td>  0</td><td> BCM88732(Shadow) Device Mode 0 = XGS, 1 = PETRAB
</td></tr><tr><td>  spn_BCM88732_1X40_4X10</td><td>  <tt>bcm88732_1x40_4x10</tt></td><td></td><td>  0</td><td> Shadow Port Configuration Front Panel ports:1X40G(XLAUI) Switch Panel(XAUI) ports:4X10G
</td></tr><tr><td>  spn_BCM88732_4X10_4X10</td><td>  <tt>bcm88732_4x10_4x10</tt></td><td></td><td>  0</td><td> Shadow Port Configuration Front Panel ports:4x10G(XFI/SFI) Switch Panel ports(XAUI):4x10G
</td></tr><tr><td>  spn_CMC</td><td>  cmc</td><td></td><td>  0</td><td> CMC in CMICm used by the microController suffix with <tt>_pci</tt> <tt>_uc0</tt> etc..
</td></tr><tr><td>  spn_FSCHAN_ENABLE</td><td>  <tt>fschan_enable</tt></td><td></td><td>  1</td><td> Enable Fast SCHAN present in CMICm
</td></tr><tr><td>  spn_PBMP_EXT_MEM</td><td>  <tt>pbmp_ext_mem</tt></td><td></td><td>  0</td><td> On 5644x devices MMU, the ports can have its packet buffer either the Interal memory or the External DRAM. Set the following pbmp to configure specific ports for external memory.
</td></tr><tr><td>  spn_FCMAP_ENABLE</td><td>  <tt>fcmap_enable</tt></td><td>  Port</td><td>  0</td><td> Specifies to enable or disable FCMAP feature on the specified port. FCMAP feature might be provided by a PHY device attached to switch port. (Default is to disable FCMAP)
</td></tr><tr><td>  spn_FCMAP_DEV_ADDR</td><td>  <tt>fcmap_dev_addr</tt></td><td>  Port</td><td>  -1</td><td> specifies the MDIO address for the FCMAP PHY device.
</td></tr><tr><td>  spn_FCMAP_PORT_INDEX</td><td>  <tt>fcmap_port_index</tt></td><td>  Port</td><td>  -1</td><td> specifies Port index within the multi-port FCMAP PHY device.
</td></tr><tr><td>  spn_BUF</td><td>  buf</td><td>  String</td><td>  0</td><td> MMU config tool prefix
</td></tr><tr><td>  spn_MAP</td><td>  map</td><td>  String</td><td>  0</td><td> MMU config tool prefix
</td></tr><tr><td>  spn_PRI</td><td>  pri</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_DEVICE</td><td>  device</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_POOL</td><td>  pool</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_PORT</td><td>  port</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_PRIGROUP</td><td>  prigroup</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_QUEUE</td><td>  queue</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_MQUEUE</td><td>  mqueue</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_EQUEUE</td><td>  equeue</td><td>  String</td><td>  0</td><td> MMU config tool object name
</td></tr><tr><td>  spn_SIZE</td><td>  size</td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_YELLOW_SIZE</td><td>  <tt>yellow_size</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_RED_SIZE</td><td>  <tt>red_size</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_GUARANTEE</td><td>  guarantee</td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_HEADROOM</td><td>  headroom</td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_USER_DELAY</td><td>  <tt>user_delay</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_SWITCH_DELAY</td><td>  <tt>switch_delay</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_POOL_SCALE</td><td>  <tt>pool_scale</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_POOL_LIMIT</td><td>  <tt>pool_limit</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_POOL_RESUME</td><td>  <tt>pool_resume</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_POOL_FLOOR</td><td>  <tt>pool_floor</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_YELLOW_LIMIT</td><td>  <tt>yellow_limit</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_YELLOW_RESUME</td><td>  <tt>yellow_resume</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_RED_LIMIT</td><td>  <tt>red_limit</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_RED_RESUME</td><td>  <tt>red_resume</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_DEVICE_HEADROOM_ENABLE</td><td>  <tt>device_headroom_enable</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_PORT_GUARANTEE_ENABLE</td><td>  <tt>port_guarantee_enable</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_PORT_MAX_ENABLE</td><td>  <tt>port_max_enable</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_FLOW_CONTROL_ENABLE</td><td>  <tt>flow_control_enable</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_DISCARD_ENABLE</td><td>  <tt>discard_enable</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_COLOR_DISCARD_ENABLE</td><td>  <tt>color_discard_enable</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_PKT_SIZE</td><td>  <tt>pkt_size</tt></td><td>  String</td><td>  0</td><td> MMU config tool attribute name
</td></tr><tr><td>  spn_UC_MSG_CTRL_0</td><td>  <tt>uc_msg_ctrl_0</tt></td><td>  String</td><td>  1</td><td> UC0 Messaging control
</td></tr><tr><td>  spn_UC_MSG_CTRL_1</td><td>  <tt>uc_msg_ctrl_1</tt></td><td>  String</td><td>  1</td><td> UC1 Messaging control
</td></tr><tr><td>  spn_UC_MSG_THREAD_PRI</td><td>  <tt>uc_msg_thread_pri</tt></td><td></td><td>  50</td><td> UC Messaging thread priority
</td></tr><tr><td>  spn_UC_MSG_CTL_TIMEOUT</td><td>  <tt>uc_msg_ctl_timeout</tt></td><td></td><td>  1000000</td><td> UC Messaging ctl mutex timeout in microsecs
</td></tr><tr><td>  spn_UC_MSG_QUEUE_TIMEOUT</td><td>  <tt>uc_msg_queue_timeout</tt></td><td></td><td>  20000000</td><td> UC Messaging send queue timeout in microsecs
</td></tr><tr><td>  spn_UC_MSG_SEND_TIMEOUT</td><td>  <tt>uc_msg_send_timeout</tt></td><td></td><td>  10000000</td><td> UC Messaging send timeout in microsecs
</td></tr><tr><td>  spn_UC_MSG_SEND_RETRY_DELAY</td><td>  <tt>uc_msg_send_retry_delay</tt></td><td></td><td>  100</td><td> UC Messaging send retry delay in microseconds
</td></tr><tr><td>  spn_UC_MSG_TX_BEACON_TIMEOUT</td><td>  <tt>uc_msg_tx_beacon_timeout</tt></td><td></td><td>  20000000</td><td> TX beacon messaging timeout in microsecs
</td></tr><tr><td>  spn_NUM_QUEUES</td><td>  <tt>num_queues</tt></td><td></td><td></td><td> In 5644x, 48 queues will be shared across host cpu and other micro controllers, this variable can be configured suffix with <tt>_pci</tt> <tt>_uc0</tt> etc..
</td></tr><tr><td>  spn_UC_VALID_BMP</td><td>  <tt>uc_valid_bmp</tt></td><td></td><td>  0</td><td> Valid Micro controllers bit map
</td></tr><tr><td>  spn_MMU_MAX_QUEUES</td><td>  <tt>mmu_max_queues</tt></td><td></td><td>  0</td><td> MMU configuration of maximum number of queues
</td></tr><tr><td>  spn_MMU_MAX_NODES</td><td>  <tt>mmu_max_nodes</tt></td><td></td><td>  0</td><td> MMU configuration of maximum number of aggregate nodes
</td></tr><tr><td>  spn_MMU_SUBSCRIBER_NUM_COS_LEVEL</td><td>  <tt>mmu_subscriber_num_cos_level</tt></td><td></td><td>  0</td><td> COS levels per subscriber
</td></tr><tr><td>  spn_MMU_EXT_QUEUES_ENABLED</td><td>  <tt>mmu_ext_queues_enabled</tt></td><td></td><td>  0</td><td> Enable Extended Queues
</td></tr><tr><td>  spn_MMU_MAX_CLASSIC_QUEUES</td><td>  <tt>mmu_max_classic_queues</tt></td><td></td><td>  0</td><td> MMU configuration of maximum number of classic queues
</td></tr><tr><td>  spn_BFD_COSQ</td><td>  <tt>bfd_cosq</tt></td><td></td><td>  47</td><td> BFD COS queue
</td></tr><tr><td>  spn_BFD_ENCAP_MEMORY_SIZE</td><td>  <tt>bfd_encap_memory_size</tt></td><td></td><td>  1024</td><td> Memory allocated for BFD encapsulation data (in bytes)
</td></tr><tr><td>  spn_BFD_SIMPLE_PASSWORD_KEYS</td><td>  <tt>bfd_simple_password_keys</tt></td><td></td><td>  0</td><td> Number of BFD simple password authentication keys
</td></tr><tr><td>  spn_BFD_SHA1_KEYS</td><td>  <tt>bfd_sha1_keys</tt></td><td></td><td>  0</td><td> Number of BFD SHA1 authentication keys
</td></tr><tr><td>  spn_BFD_NUM_SESSIONS</td><td>  <tt>bfd_num_sessions</tt></td><td></td><td>  0</td><td> Number of BFD sessions
</td></tr><tr><td>  spn_PTP_SYNTH_1_K1</td><td>  <tt>ptp_synth_1_k1</tt></td><td></td><td>  56294995</td><td> PTP frequency synthesizer DFPLL value for state 1 and k1 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_1_K1K2</td><td>  <tt>ptp_synth_1_k1k2</tt></td><td></td><td>  0</td><td> PTP frequency synthesizer DFPLL value for state 1 and k1k2 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_1_K1K3</td><td>  <tt>ptp_synth_1_k1k3</tt></td><td></td><td>  0</td><td> PTP frequency synthesizer DFPLL value for state 1 and k1k3 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_1_K4</td><td>  <tt>ptp_synth_1_k4</tt></td><td></td><td>  0</td><td> PTP frequency synthesizer DFPLL value for state 1 and k4 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_1_VALID_THRESH</td><td>  <tt>ptp_synth_1_valid_thresh</tt></td><td></td><td>  1000</td><td> PTP frequency synthesizer DFPLL value for state 1 and <tt>valid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_SYNTH_1_INVALID_THRESH</td><td>  <tt>ptp_synth_1_invalid_thresh</tt></td><td></td><td>  1000</td><td> PTP frequency synthesizer DFPLL value for state 1 and <tt>invalid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_SYNTH_2_K1</td><td>  <tt>ptp_synth_2_k1</tt></td><td></td><td>  562949953</td><td> PTP frequency synthesizer DFPLL value for state 2 and k1 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_2_K1K2</td><td>  <tt>ptp_synth_2_k1k2</tt></td><td></td><td>  450360</td><td> PTP frequency synthesizer DFPLL value for state 2 and k1k2 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_2_K1K3</td><td>  <tt>ptp_synth_2_k1k3</tt></td><td></td><td>  0</td><td> PTP frequency synthesizer DFPLL value for state 2 and k1k3 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_2_K4</td><td>  <tt>ptp_synth_2_k4</tt></td><td></td><td>  0</td><td> PTP frequency synthesizer DFPLL value for state 2 and k4 filter parameter
</td></tr><tr><td>  spn_PTP_SYNTH_2_VALID_THRESH</td><td>  <tt>ptp_synth_2_valid_thresh</tt></td><td></td><td>  1000</td><td> PTP frequency synthesizer DFPLL value for state 2 and <tt>valid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_SYNTH_2_INVALID_THRESH</td><td>  <tt>ptp_synth_2_invalid_thresh</tt></td><td></td><td>  1000</td><td> PTP frequency synthesizer DFPLL value for for state 2 and <tt>invalid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_SYNTH_VALID_INPUT_THRESH</td><td>  <tt>ptp_synth_valid_input_thresh</tt></td><td></td><td>  3</td><td> PTP frequency synthesizer DFPLL value for <tt>valid_input</tt> parameter
</td></tr><tr><td>  spn_PTP_SYNTH_NOMINAL_PERIOD</td><td>  <tt>ptp_synth_nominal_period</tt></td><td></td><td>  125000</td><td> PTP frequency synthesizer DFPLL value for <tt>nominal_period</tt> parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_1_K1</td><td>  <tt>ptp_backplane_1_k1</tt></td><td></td><td>  130000</td><td> PTP backplane DFPLL value for state 1 and k1 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_1_K1K2</td><td>  <tt>ptp_backplane_1_k1k2</tt></td><td></td><td>  0</td><td> PTP backplane DFPLL value for state 1 and k1k2 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_1_K1K3</td><td>  <tt>ptp_backplane_1_k1k3</tt></td><td></td><td>  0</td><td> PTP backplane DFPLL value for state 1 and k1k3 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_1_K4</td><td>  <tt>ptp_backplane_1_k4</tt></td><td></td><td>  0</td><td> PTP backplane DFPLL value for state 1 and k4 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_1_VALID_THRESH</td><td>  <tt>ptp_backplane_1_valid_thresh</tt></td><td></td><td>  10</td><td> PTP backplane DFPLL value for state 1 and <tt>valid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_1_INVALID_THRESH</td><td>  <tt>ptp_backplane_1_invalid_thresh</tt></td><td></td><td>  10</td><td> PTP backplane DFPLL value for state 1 and <tt>invalid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_2_K1</td><td>  <tt>ptp_backplane_2_k1</tt></td><td></td><td>  14390</td><td> PTP backplane DFPLL value for state 2 and k1 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_2_K1K2</td><td>  <tt>ptp_backplane_2_k1k2</tt></td><td></td><td>  255</td><td> PTP backplane DFPLL value for state 2 and k1k2 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_2_K1K3</td><td>  <tt>ptp_backplane_2_k1k3</tt></td><td></td><td>  0</td><td> PTP backplane DFPLL value for state 2 and k1k3 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_2_K4</td><td>  <tt>ptp_backplane_2_k4</tt></td><td></td><td>  0</td><td> PTP backplane DFPLL value for state 2 and k4 filter parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_2_VALID_THRESH</td><td>  <tt>ptp_backplane_2_valid_thresh</tt></td><td></td><td>  10</td><td> PTP backplane DFPLL value for state 2 and <tt>valid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_2_INVALID_THRESH</td><td>  <tt>ptp_backplane_2_invalid_thresh</tt></td><td></td><td>  10</td><td> PTP backplane DFPLL value for state 2 and <tt>invalid_thresh</tt> parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_VALID_INPUT_THRESH</td><td>  <tt>ptp_backplane_valid_input_thresh</tt></td><td></td><td>  3</td><td> PTP backplane DFPLL value for <tt>valid_input</tt> parameter
</td></tr><tr><td>  spn_PTP_BACKPLANE_NOMINAL_PERIOD</td><td>  <tt>ptp_backplane_nominal_period</tt></td><td></td><td>  250000</td><td> PTP backplane DFPLL value for <tt>nominal_period</tt> parameter
</td></tr><tr><td>  spn_PTP_TS_PLL_FREF</td><td>  <tt>ptp_ts_pll_fref</tt></td><td></td><td>  25000000</td><td> PTP Timestamping PLL value for fref parameter
</td></tr><tr><td>  spn_PTP_TS_PLL_PDIV</td><td>  <tt>ptp_ts_pll_pdiv</tt></td><td></td><td>  1</td><td> PTP Timestamping PLL value for pdiv parameter
</td></tr><tr><td>  spn_PTP_TS_PLL_N</td><td>  <tt>ptp_ts_pll_n</tt></td><td></td><td>  160</td><td> PTP Timestamping PLL value for n parameter
</td></tr><tr><td>  spn_PTP_TS_PLL_MNDIV</td><td>  <tt>ptp_ts_pll_mndiv</tt></td><td></td><td>  16</td><td> pPTP Timestamping PLL value for mndiv parameter
</td></tr><tr><td>  spn_PTP_TS_KA</td><td>  <tt>ptp_ts_ka</tt></td><td></td><td>  2</td><td> PTP Timestamping PLL value for ka parameter
</td></tr><tr><td>  spn_PTP_TS_KI</td><td>  <tt>ptp_ts_ki</tt></td><td></td><td>  2</td><td> PTP Timestamping PLL value for k1 parameter
</td></tr><tr><td>  spn_PTP_TS_KP</td><td>  <tt>ptp_ts_kp</tt></td><td></td><td>  6</td><td> PTP Timestamping PLL value for kp parameter
</td></tr><tr><td>  spn_PTP_TS_VCO_DIV2</td><td>  <tt>ptp_ts_vco_div2</tt></td><td></td><td>  0</td><td> PTP Timestamping PLL value for <tt>vco_div2</tt> parameter
</td></tr><tr><td>  spn_PTP_BS_FREF</td><td>  <tt>ptp_bs_fref</tt></td><td></td><td>  25000000</td><td> PTP BroadSync/10Mhz PLL value for fref parameter
</td></tr><tr><td>  spn_PTP_BS_PDIV</td><td>  <tt>ptp_bs_pdiv</tt></td><td></td><td>  2</td><td> PTP BroadSync/10Mhz PLL value for pdiv parameter
</td></tr><tr><td>  spn_PTP_BS_NDIV_INT</td><td>  <tt>ptp_bs_ndiv_int</tt></td><td></td><td>  320</td><td> PTP BroadSync/10Mhz PLL value for ndiv parameter
</td></tr><tr><td>  spn_PTP_BS_NDIV_FRAC</td><td>  <tt>ptp_bs_ndiv_frac</tt></td><td></td><td>  0</td><td> PTP BroadSync/10Mhz PLL value for <tt>ndiv_frac</tt> parameter
</td></tr><tr><td>  spn_PTP_BS_MNDIV</td><td>  <tt>ptp_bs_mndiv</tt></td><td></td><td>  200</td><td> PTP BroadSync/10Mhz PLL value for mndiv parameter
</td></tr><tr><td>  spn_PTP_BS_KA</td><td>  <tt>ptp_bs_ka</tt></td><td></td><td>  1</td><td> PTP BroadSync/10Mhz PLL value for ka parameter
</td></tr><tr><td>  spn_PTP_BS_KI</td><td>  <tt>ptp_bs_ki</tt></td><td></td><td>  1</td><td> PTP BroadSync/10Mhz PLL value for k1 parameter
</td></tr><tr><td>  spn_PTP_BS_KP</td><td>  <tt>ptp_bs_kp</tt></td><td></td><td>  5</td><td> PTP BroadSync/10Mhz PLL value for kp parameter
</td></tr><tr><td>  spn_PTP_BS_CLK_DUR_HIGH</td><td>  <tt>ptp_bs_clk_dur_high</tt></td><td></td><td>  1</td><td> PTP BroadSync/10Mhz PLL value for <tt>clk_dur_high</tt> parameter
</td></tr><tr><td>  spn_PTP_BS_CLK_DUR_LOW</td><td>  <tt>ptp_bs_clk_dur_low</tt></td><td></td><td>  1</td><td> PTP BroadSync/10Mhz PLL value for <tt>clk_dur_low</tt> parameter
</td></tr><tr><td>  spn_PTP_BS_HB_DUR_HIGH</td><td>  <tt>ptp_bs_hb_dur_high</tt></td><td></td><td>  1</td><td> PTP BroadSync/10Mhz PLL value for <tt>hb_dur_high</tt> parameter
</td></tr><tr><td>  spn_PTP_BS_HB_DUR_LOW</td><td>  <tt>ptp_bs_hb_dur_low</tt></td><td></td><td>  2499</td><td> PTP BroadSync/10Mhz PLL value for <tt>hb_dur_low</tt> parameter
</td></tr><tr><td>  spn_PTP_BS_VCO_DIV2</td><td>  <tt>ptp_bs_vco_div2</tt></td><td></td><td>  1</td><td> PTP BroadSync/10Mhz PLL value for <tt>vco_div2</tt> parameter
</td></tr><tr><td>  spn_PTP_SERVO_OSC_TYPE</td><td>  <tt>ptp_servo_osc_type</tt></td><td></td><td>  3</td><td> PTP servo oscillator type
</td></tr><tr><td>  spn_PTP_SERVO_TRANSPORT_TYPE</td><td>  <tt>ptp_servo_transport_type</tt></td><td></td><td>  2</td><td> PTP servo transport type
</td></tr><tr><td>  spn_PTP_SERVO_PHASE_MODE</td><td>  <tt>ptp_servo_phase_mode</tt></td><td></td><td>  3</td><td> PTP servo phase mode
</td></tr><tr><td>  spn_PTP_SERVO_BRIDGE_TIME</td><td>  <tt>ptp_servo_bridge_time</tt></td><td></td><td>  300</td><td> PTP servo bridge time
</td></tr><tr><td>  spn_WARMBOOT_EVENT_HANDLER_ENABLE</td><td>  <tt>warmboot_event_handler_enable</tt></td><td></td><td>  0</td><td> Register Warm Boot event handler callback routine
</td></tr><tr><td>  spn_CES_PORT_TDM_PROTO</td><td>  <tt>ces_port_tdm_proto</tt></td><td>  String</td><td>  0</td><td> Selects the TDM protocol to be used on all of the CES TDM ports. Valid protocols are either T1 or E1, the default is T1.
</td></tr><tr><td>  spn_CES_MII_MAC</td><td>  <tt>ces_mii_mac</tt></td><td>  String</td><td>  00:F1:F2:F3:F4:F5</td><td> Sets the MAC address of the CES MII. If this is not specified then a default MAC of 00:F1:F2:F3:F4:F5 is used.
</td></tr><tr><td>  spn_CES_MII_PORT_NUMBER</td><td>  <tt>ces_mii_port_number</tt></td><td></td><td>  0</td><td> Sets the CES MII port number. Default value is 0
</td></tr><tr><td>  spn_CES_IPV4_ADDRESS</td><td>  <tt>ces_ipv4_address</tt></td><td>  String</td><td>  0.0.0.0</td><td> Sets the CES IPv4 address. Default value is 0
</td></tr><tr><td>  spn_CES_IPV6_ADDRESS</td><td>  <tt>ces_ipv6_address</tt></td><td>  String</td><td></td><td> Sets the CES IPv6 address. Default value is 0
</td></tr><tr><td>  spn_EA_ATTACH</td><td>  <tt>ea_attach</tt></td><td>  Port</td><td>  none</td><td> For EA SDK only: describe EA unit X connected to Switch unit Y and its port Z. <tt>ea_attach</tt>.portZ.Y=X For single EA unit attaches to switch unit 0, port25, <tt>ea_attach</tt>.port25.0=0 For multiple EA units, <tt>ea_attach</tt>.port25.0=0 <tt>ea_attach</tt>.port26.0=1 For EA unit that does not attach to switch, <tt>ea_attach</tt>.port0.-1=0
</td></tr><tr><td>  spn_DDR3_MEM_GRADE</td><td>  <tt>ddr3_mem_grade</tt></td><td></td><td></td><td> Memory Grade writte in Hex Value. eg. 10-10-10 grade = 0x101010
</td></tr><tr><td>  spn_DDR3_CLOCK_MHZ</td><td>  <tt>ddr3_clock_mhz</tt></td><td></td><td></td><td> Memory Speed in MHz
</td></tr><tr><td>  spn_DDR3_AUTO_TUNE</td><td>  <tt>ddr3_auto_tune</tt></td><td></td><td></td><td> Autorun Shmoo Tuning on Init
</td></tr><tr><td>  spn_DDR3_TUNE_RD_EN</td><td>  <tt>ddr3_tune_rd_en</tt></td><td></td><td></td><td> Following properties are used to store DDR3 Auto Tuning Values. Restores these values only if Auto-Tune is Off
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_RD_DQS_B0_0_3</td><td>  <tt>ddr3_tune_wl0_rd_dqs_b0_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_RD_DQS_B0_4_7</td><td>  <tt>ddr3_tune_wl0_rd_dqs_b0_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_RD_DQS_B1_0_3</td><td>  <tt>ddr3_tune_wl0_rd_dqs_b1_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_RD_DQS_B1_4_7</td><td>  <tt>ddr3_tune_wl0_rd_dqs_b1_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_RD_DQS_B0_0_3</td><td>  <tt>ddr3_tune_wl1_rd_dqs_b0_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_RD_DQS_B0_4_7</td><td>  <tt>ddr3_tune_wl1_rd_dqs_b0_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_RD_DQS_B1_0_3</td><td>  <tt>ddr3_tune_wl1_rd_dqs_b1_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_RD_DQS_B1_4_7</td><td>  <tt>ddr3_tune_wl1_rd_dqs_b1_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_WR_DQ_B0_0_3</td><td>  <tt>ddr3_tune_wl0_wr_dq_b0_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_WR_DQ_B0_4_7</td><td>  <tt>ddr3_tune_wl0_wr_dq_b0_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_WR_DQ_B1_0_3</td><td>  <tt>ddr3_tune_wl0_wr_dq_b1_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL0_WR_DQ_B1_4_7</td><td>  <tt>ddr3_tune_wl0_wr_dq_b1_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_WR_DQ_B0_0_3</td><td>  <tt>ddr3_tune_wl1_wr_dq_b0_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_WR_DQ_B0_4_7</td><td>  <tt>ddr3_tune_wl1_wr_dq_b0_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_WR_DQ_B1_0_3</td><td>  <tt>ddr3_tune_wl1_wr_dq_b1_0_3</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_WL1_WR_DQ_B1_4_7</td><td>  <tt>ddr3_tune_wl1_wr_dq_b1_4_7</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TUNE_ADDRC</td><td>  <tt>ddr3_tune_addrc</tt></td><td></td><td></td><td> DDR3 Tuning Parameter
</td></tr><tr><td>  spn_DDR3_TREAD_ENB</td><td>  <tt>ddr3_tread_enb</tt></td><td></td><td></td><td> Following properties are for DDR3 Tuning Overrides
</td></tr><tr><td>  spn_DDR3_BANK_UNAVAIL_RD</td><td>  <tt>ddr3_bank_unavail_rd</tt></td><td></td><td></td><td> DDR3 Tuning Overrides
</td></tr><tr><td>  spn_DDR3_BANK_UNAVAIL_WR</td><td>  <tt>ddr3_bank_unavail_wr</tt></td><td></td><td></td><td> DDR3 Tuning Overrides
</td></tr><tr><td>  spn_DDR3_TRP_READ</td><td>  <tt>ddr3_trp_read</tt></td><td></td><td></td><td> DDR3 Tuning Overrides
</td></tr><tr><td>  spn_DDR3_TRP_WRITE</td><td>  <tt>ddr3_trp_write</tt></td><td></td><td></td><td> DDR3 Tuning Overrides
</td></tr><tr><td>  spn_DDR3_ROUND_ROBIN_READ</td><td>  <tt>ddr3_round_robin_read</tt></td><td></td><td></td><td> DDR3 Tuning Overrides
</td></tr><tr><td>  spn_DDR3_ROUND_ROBIN_WRITE</td><td>  <tt>ddr3_round_robin_write</tt></td><td></td><td></td><td> DDR3 Tuning Overrides
</td></tr><tr><td>  spn_GLOBAL_METER_CONTROL</td><td>  <tt>global_meter_control</tt></td><td></td><td>  1</td><td> Enable Service Meter
</td></tr><tr><td>  spn_RCPU_SRC_MAC</td><td>  <tt>rcpu_src_mac</tt></td><td>  String</td><td>  00:aa:bb:22:33:00</td><td> Sets the MAC address of RCPU master. If this is not specified then a default MAC of 00:aa:bb:22:33:00 is used. Note local CPU MAC address is used in case of OOB RCPU master even this property is specified.
</td></tr><tr><td>  spn_RCPU_LMAC</td><td>  <tt>rcpu_lmac</tt></td><td>  String</td><td>  00:00:11:22:33::00</td><td> Sets the MAC address used by RCPU slave units. If this is not specified then a default MAC of 00:00:11:22:33:00 is used. And the last octet is replaced with unit number.
</td></tr><tr><td>  spn_PHY_CLOCK_ENABLE</td><td>  <tt>phy_clock_enable</tt></td><td>  Port</td><td>  0</td><td> This controls whether to extract the recovered clock or not. (same as SyncE)
</td></tr><tr><td>  spn_MDIO_OUTPUT_DELAY</td><td>  <tt>mdio_output_delay</tt></td><td></td><td>  -1</td><td> Number of clock delay between the rising edge of MDC and the starting data of MDIO
</td></tr><tr><td>  spn_VLAN_QUEUE_ENABLE</td><td>  <tt>vlan_queue_enable</tt></td><td></td><td>  0</td><td> Enable VLAN queues
</td></tr><tr><td>  spn_VLAN_QUEUE_LEVELS_MAX</td><td>  <tt>vlan_queue_levels_max</tt></td><td></td><td>  64</td><td> Maximum levels for VLAN queues
</td></tr></tbody></table><p><p><br><br><hr noshade><br><br>
    <a name=section_resolved5.10.0>
    <h3>Section 6:  Resolved Issues for 5.10.0
</h3>
<p>The following issues are resolved in version 5.10.0 of the SDK.
<p><table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b> Number
 </b></td><td><b> Release Notes For 5.10.0
</b></td></tr><tr><td> BSP-158 
 </td><td> Discarding the received packets that corrupted when the RX overflow event happened of Keystone GMAC core.
</td></tr><tr><td> PHY-420 
 </td><td> 20G DXGXS ethernet speed mode in BCM5684x Switch's dual-lane port should now work.
</td></tr><tr><td> PHY-449 
 </td><td> Fixed a potential MDIO register corruption issue when Switch port using BCM87x6/BCM87x7/BCM807x type of PHY device experiences rapid link transition cycles
</td></tr><tr><td> PHY-459 
 </td><td> Support BCM84740 PHY device reverse mode operation
</td></tr><tr><td> SDK-25142 
 </td><td> added support for out of band HCFC support for bcm88230 devices
</td></tr><tr><td> SDK-25188 
 </td><td> Added CINT function <tt>cint_timer_get</tt>() to get the current value of the CINT timer.
Changed CINT functions <tt>cint_timer_start</tt>() and <tt>cint_timer_stop</tt>() to provide a more useful programming interface.
</td></tr><tr><td> SDK-28797 
 </td><td> Implemented performance optimization for LPM route operations.
</td></tr><tr><td> SDK-28822 
 </td><td> Program <tt>CMIC_BS_CLK_TOOGLE_TIME</tt> registers when enabling broadsync output or changing offset values.
</td></tr><tr><td> SDK-29933 
 </td><td> <tt>bcm_stat_multi_get</tt>() and <tt>bcm_stat_multi_get32</tt>() now supported on appropriate XCORE devices.
</td></tr><tr><td> SDK-30232 
 </td><td> Added multipath shaper support for BCM88230 devices
</td></tr><tr><td> SDK-30294 SDK-30328 SDK-32022
 </td><td> When VP is added to VPLS VPN, CML of VP is by default set to <tt>FWD_MODE</tt>(L2 hardware learning enabled). This will result in learning of entries that CPU cannot manage.
<p>For this purpose SwitchControls are added - that configures default CPU managed Learn settings per Virtual Port.
    bcmSwitchGportAnyDefaultL2Learn  &lt;CML value&gt;
    bcmSwitchGportAnyDefaultL2Learn  &lt;CML value?
<p>Customer may use these Switchcontrols to configure default CML action for any Virtual Port application.
</td></tr><tr><td> SDK-30562 
 </td><td> Fixed parameter checking of <tt>bcm_vlan_action_set_t</tt> such that <tt>ot_inner</tt> and <tt>it_outer</tt> fields can take on the value bcmVlanActionCopy on devices that support this type of VLAN tag action. On devices that don't support bcmVlanActionCopy, <tt>BCM_E_UNAVAIL</tt> is returned.
</td></tr><tr><td> SDK-30612 
 </td><td> BCM 88025: Added support for PSC message transmission and reception in micro-code. Burst and slow-rate modes supported for TX. A hold-down timer is implemented on RX to silently drop all but the first received packet in a burst.
</td></tr><tr><td> SDK-30698 
 </td><td> Use hardware <tt>L2_BULK</tt> operation for matching mac or virtual port destination instead of software traverse on BCM5684x.
</td></tr><tr><td> SDK-30775 
 </td><td> Customer may configure <tt>RETURN_VALUE</tt> during SwitchControl Set operation:
<tt>bcm_switch_control_set</tt>(0, bcmSwitchL3HostAsRouteReturnValue, customer_specified_RVAL);
<p>1. <tt>bcm_l3_host_add</tt> API return "customer_specified_RVAL" when HOST entry is added to ROUTE.
2. <tt>bcm_l3_host_delete</tt> API return "customer_specified_RVAL" when HOST entry is deleted from ROUTE.
3. <tt>bcm_l3_host_add</tt> API with flag=<tt>BCM_L3_REPLACE</tt> return "customer_specified_RVAL" when ROUTE entry gets migrated to HOST 
</td></tr><tr><td> SDK-30870 
 </td><td> Add <tt>bcm_cosq_gport_mapping_set</tt>/get API for internal priority to cos queue mapping.
</td></tr><tr><td> SDK-30894 
 </td><td> The routine <tt>soc_phyctrl_port_dump</tt>() now shows the EEE capability of the PHY.
</td></tr><tr><td> SDK-30935 
 </td><td> Updated <tt>bcm_field_data_packet_format_t</tt> structure members variables <tt>fibre_chan_outer</tt> and <tt>fibre_chan_inner</tt> from uint8 to uint16 type.
To fix compilation warning when these variables are assigned <tt>BCM_FIELD_DATA_FORMAT_FIBRE_CHAN_ANY</tt> (0xffff) value.
</td></tr><tr><td> SDK-30975 
 </td><td> Modified BCM5663x, BCM5652x, and BCM5684x flexible counter collection to only accumulate active counters.
</td></tr><tr><td> SDK-31024 
 </td><td> Added support for <tt>BCM_TRUNK_MEMBER_INGRESS_DISABLE</tt> and <tt>BCM_TRUNK_MEMBER_EGRESS_DISABLE</tt> flags on BCM5684x devices.
</td></tr><tr><td> SDK-31175 
 </td><td> Add packet buffer drop counter to statistics calculations for XGS3 devices.
</td></tr><tr><td> SDK-31215 
 </td><td> Admission Control Statistics support added. These statistics are collected through a polling thread.
</td></tr><tr><td> SDK-31219 
 </td><td> Add MMU config variables for BCM5684x.
</td></tr><tr><td> SDK-31253 
 </td><td> Added configuration property spn_QE_LAG_UC_REDIST that can be used to operate BCM88230 devices in a mode where BCM88230 replicates unicast across aggregates and squelches locally, effectively overriding frame distribution on aggregates so LBID maps round-robin to member targets.
</td></tr><tr><td> SDK-31427 
 </td><td> Added bcmPortControlPFCRefreshTime for configuring and retreiving PFC refresh timer.
</td></tr><tr><td> SDK-31453 
 </td><td> A new configuration property, "<tt>qe_thresh_drop_limit</tt>", now controls initialization of the <tt>eg_fd_fifo_thresh</tt> table on BCM88230 devices. A value of 0-8 will automatically set the dynamic bit to 1 and the <tt>FIFO_THRESH</tt> field to the value of the soc property. A value of 9-0x7fff will leave the dynamic bit set to 0 and set the <tt>FIFO_THRESH</tt> to the value of the soc property. Any other value will result in the dynamic bit set to 0 and the <tt>FIFO_THRESH</tt> field set to 0x7fff.
</td></tr><tr><td> SDK-31507 
 </td><td> <tt>BCM_COSQ_GPORT_ATTACH_ID_SYSPORT_SET</tt>(<tt>attach_id</tt>,sysport) will now create an <tt>attach_id</tt> using a sysport on BCM88230 devices.
</td></tr><tr><td> SDK-31707 
 </td><td> Fix <tt>bcm_cosq_discard_port_set</tt> and <tt>bcm_cosq_gport_discard_set</tt> to let it work properly when disabling WRED on BCM5684x.
</td></tr><tr><td> SDK-31749 
 </td><td> Added documentation for PortControl PFCRefreshTime.
</td></tr><tr><td> SDK-31752 
 </td><td> added PFC support for sirius C0 and B0
</td></tr><tr><td> SDK-31819 
 </td><td> <tt>bcm_crossbar_connection_status_get</tt>() now supports all ability types and returns the logical crossbars associated with the plane.
</td></tr><tr><td> SDK-31916 
 </td><td> Updated <tt>bcm_field_data_qualifier_packet_format_add</tt>() API to support
<tt>BCM_FIELD_DATA_FORMAT_IP_ANY</tt> and <tt>BCM_FIELD_DATA_FORMAT_TUNNEL_ANY</tt>
combination on Chariot class devices.
</td></tr><tr><td> SDK-32011 
 </td><td> Fixed setting of used bit of the 2nd label within <tt>bcm_tr_mpls_tunnel_initiator_set</tt>(), when 2 labels are pushed.
</td></tr><tr><td> SDK-32013 
 </td><td> Added <tt>cint_interpreter_initialize_register</tt>(), <tt>cint_interpreter_initialize_unregister</tt>() to allow the addition of custom CINT initialization code.
</td></tr><tr><td> SDK-32030 
 </td><td> IPMC code no longer keeps L3 entry h/w index cached with it and instead keeps s/w copies of the key data along with getting hit bit info from the L3 interface as needed.
</td></tr><tr><td> SDK-32053 
 </td><td> Updated <tt>_field_xx_action_params_check</tt>() routine in SDK to return error when Invalid egress object ID parameter value is passed for bcmFieldActionL3ChangeVlan,
bcmFieldActionL3ChangeMacDa and bcmFieldActionL3Switch actions.
</td></tr><tr><td> SDK-32085 
 </td><td> Corrected several Typos in API guide and platforms guide
</td></tr><tr><td> SDK-32100 
 </td><td> Counter collection in XGS devices is accelerated by caching some memory decoding information during driver initialization to streamline the accumulation of flexible statistics and FP counters.
</td></tr><tr><td> SDK-32103 
 </td><td> <tt>bcm_oam_endpoint_create</tt>() API can now support CCM RX enabled endpoint creation over Trunks for Enduro and Chariot devices.
</td></tr><tr><td> SDK-32150 
 </td><td> Added an additional check to prevent improper MAC state transition during link flapping on 100Mb ports.
</td></tr><tr><td> SDK-32215 
 </td><td> Added support for <tt>fabric_control_set</tt>/get API to control number of ingress schedulers and ingress scheduler update intervals on each level for BCM88230 devices.
</td></tr><tr><td> SDK-32353 
 </td><td> Added support for VLAN tag priority and cfi fields actions in BCM56840.
</td></tr><tr><td> SDK-32428 SDK-32203
 </td><td> Add <tt>BCM_COSQ_DISCARD_DEVICE</tt> and <tt>BCM_COSQ_DISCARD_PORT</tt> to allow configuring per device or per port WRED on BCM5684x.
</td></tr><tr><td> SDK-32514 
 </td><td> Fixed field Data qualifier API implementation to correctly parse the "<tt>BCM_FIELD_DATA_FORMAT_MPLS_ANY</tt>"
MPLS packet format while allocating the hardware table index on XGS IV and XGS V series devices. 
</td></tr><tr><td> SDK-32564 
 </td><td> Fixed secondary selector codes for bcmFieldQualifySrcMplsGport and bcmFieldQualifySrcMimGport qualifiers in IFP init routine for
Trident and Hurricane devices. Updated bcm_field_qualify_SrcMplsGport/SrcMimGport qualifier APIs.
</td></tr><tr><td> SDK-32565 
 </td><td> Enhanced <tt>bcm_cosq_gport_attach_get</tt>() to be able to retrieve data for egress schedulers on BCM88230 family of devices even when operating in 176 port mode
</td></tr><tr><td> SDK-32665 
 </td><td> Fixed Vlan protocol data configuration when a non-zero priority is set.
</td></tr><tr><td> SDK-32669 
 </td><td> Improved "ddrphytune" Diag Shell command for BCM88230 devices.
</td></tr><tr><td> SDK-32679 
 </td><td> Program <tt>CMIC_BS_CLK_TOOGLE_TIME</tt> registers when enabling broadsync output or changing offset values.
</td></tr><tr><td> SDK-32695 
 </td><td> During BCM5663x, BCM5652x, and BCM5684x flexible counter accumulation, release the module lock between each of the four tables to allow other operations to proceed.
</td></tr><tr><td> SDK-32700 
 </td><td> New BCMX field qualifier APIs:
  bcmx_field_qualify_SrcVirtualPortValid()
  bcmx_field_qualify_SrcVirtualPortValid_get()
</td></tr><tr><td> SDK-32701 
 </td><td> Added new qualifier bcmFieldQualifySrcVirtualPortValid and related apis bcm_field_qualify_SrcVirtualPortValid() and bcm_field_qualify_SrcVirtualPortValid_get() for Trident device.
</td></tr><tr><td> SDK-32703 
 </td><td> Added support for new field qualifier API bcm_field_qualify_SrcVirtualPortValid() and bcm_field_qualify_SrcVirtualPortValid_get() for Trident device.
</td></tr><tr><td> SDK-32705 
 </td><td> Update tdsanity.soc script to skip tests not applicable for BCM5674x.
</td></tr><tr><td> SDK-32712 
 </td><td> Added new KNET APIs for data structure initialization.
</td></tr><tr><td> SDK-32716 SDK-34124
 </td><td> Allow 21G portmap configuration on BCM5684x. This configuration applying to 21G HIGIG2 application only, allocates 20G bandwidth.
</td></tr><tr><td> SDK-32781 
 </td><td> Updated <tt>bcm_field_entry_stat_attach</tt>/detach() APIs to do an Hitless update of the entry configuration in the policy table.
</td></tr><tr><td> SDK-32828 
 </td><td> The <tt>bcm_trunk_create</tt> API will return <tt>BCM_E_FULL</tt> when no more trunk IDs are available.
</td></tr><tr><td> SDK-32843 
 </td><td> Added <tt>bcm_st_current_db_get</tt>(void) and <tt>bcm_st_discovery_db_get</tt>(void) to return consistent copies of the stktask current and discovery CPU databases.
</td></tr><tr><td> SDK-32849 
 </td><td> With Per-Port MPLS-Label-scope, multiple next-hops with different out-vlan can have the same Tunnel-label. In such a scenario, multiple <tt>EGR_L3_INTF</tt> can point to the same <tt>EGR_MPLS_TUNNEL</tt> entry. Added reference count for Egress_Tunnel_Labels that have per-port MPLS label-scope. The <tt>tunnel_entry</tt> can be deleted only when it's <tt>reference_count</tt> = 0;
</td></tr><tr><td> SDK-32857 
 </td><td> <tt>EGRMETERINGCONFIG_64</tt>.cpu0 is being configured for rx pps rate and burst.
</td></tr><tr><td> SDK-32869 
 </td><td> Avoid calling <tt>soc_property_get</tt> within runtime or recursive l2 code.
</td></tr><tr><td> SDK-32889 SDK-32184
 </td><td> There are two methods to configure XGS devices to forward packets destined for a remote module ID to a Higig trunk group. The legacy method is to call <tt>bcm_stk_modport_set</tt> API with the parameter "port" set to one of the Higig ports in the Higig trunk group. The second method, recently introduced, is to call <tt>bcm_stk_modport_set</tt> API with the parameter "port" set to the Higig trunk group GPORT ID. The legacy method was broken on BCM56840 and has been fixed.
</td></tr><tr><td> SDK-32891 
 </td><td> Add config variable <tt>mdio_output_delay</tt> to allow configuring delay between MDC signal and MDIO data on BCM5684x.
</td></tr><tr><td> SDK-32896 
 </td><td> Fixed <tt>bcm_vlan_control_vlan_get</tt> crash on BCM56740 device.
</td></tr><tr><td> SDK-32901 
 </td><td> Added bcmCosqControlFlowControlState in <tt>bcm_cosq_control_set</tt>() to allow application to set flow control state manually for BCM88230 family of devices
</td></tr><tr><td> SDK-32903 
 </td><td> Eliminated redundant declarations in SDK header files.
</td></tr><tr><td> SDK-32908 
 </td><td> Fixed 'mpls expmap show' command.
</td></tr><tr><td> SDK-32910 
 </td><td> <tt>EGRMETERINGCONFIG_64</tt>.cpu0 is being configured for rx pps rate and burst.
</td></tr><tr><td> SDK-32948 
 </td><td> Fixed packet drop issue for packets that are larger than timeslot burst size under BCM88230 TME/Inline TME/Hybrid-local queues mode.
</td></tr><tr><td> SDK-32964 
 </td><td> Fixed race condition between <tt>bcm_port</tt> and <tt>bcm_trunk</tt> APIs when modifying <tt>SOURCE_TRUNK_MAP_TABLE</tt> on XGS devices.
</td></tr><tr><td> SDK-32983 
 </td><td> Reduced the supported maximum weight of scheduler nodes to 0x3F to improve scheduling accuracy on BCM88230 devices.
</td></tr><tr><td> SDK-33001 
 </td><td> Display verbose message instead of error message when MEP is created.
</td></tr><tr><td> SDK-33004 
 </td><td> <tt>bcm_port_link_get</tt>() for BCM88230 and BCM88130 devices: added the ability <tt>BCM_PORT_ABILITY_SFI_SCI</tt>, ignore odd channel time alignment if channel is in loopback.
</td></tr><tr><td> SDK-33012 
 </td><td> Add the missing code "tmp = 0" inside the FOR loop in API <tt>bcm_esw_policer_set</tt>.
Otherwise the IFP entry reinstall will not update the <tt>METER_PAIR_MODE</tt> properly when the policer it attached is shared.
</td></tr><tr><td> SDK-33013 
 </td><td> Keep OAM group defect status if it is being replaced.
</td></tr><tr><td> SDK-33029 
 </td><td> Add the support of force auto-mdix mode for BCM53101.
</td></tr><tr><td> SDK-33030 
 </td><td> Fixed <tt>DT_MEM</tt> corruption of fifo N/N+1 when fifo port using fifo N+2 and N+3 is created on BCM88230 running in the "2 fifo per port" mode.
</td></tr><tr><td> SDK-33050 
 </td><td> Added 'phy prbs' command support to CLI for QE2000 device. To use, enable PRBS at far end Polaris device via command 'phy prbs sfi set mode=hc' then at near end QE2000 'phy prbs sfi set' then use get command on both ends to check PRBS status.
</td></tr><tr><td> SDK-33053 
 </td><td> Fix <tt>bcm_l2_cache</tt> API on BCM5684x.
</td></tr><tr><td> SDK-33068 
 </td><td> <tt>bcm_bm9600_ability_matching_speed_set</tt> didn't properly derive node from port.
</td></tr><tr><td> SDK-33073 
 </td><td> Fixed <tt>bcm_port_match_add</tt>/delete APIs to support setting VLAN range match criteria on trunk groups.
</td></tr><tr><td> SDK-33074 
 </td><td> Fixed virtual port match criteria count update in <tt>bcm_port_match_add</tt>/delete APIs.
</td></tr><tr><td> SDK-33085 
 </td><td> Fix BCM5684x memory parity handling for memory in Y pipe.
</td></tr><tr><td> SDK-33088 
 </td><td> VLAN translate traverse does not handle max index of tables
</td></tr><tr><td> SDK-33109 
 </td><td> Removed bcmSwitchL3MtuFailToCpu switch control support for Raven device as this control is not supported by Hardware.
</td></tr><tr><td> SDK-33116 
 </td><td> Support multicast APIs with <tt>BCM_MULTICAST_TYPE_L2</tt> type for all ROBO chips instead of bcm5328x devices only.
</td></tr><tr><td> SDK-33124 
 </td><td> Export all BCM/BCMX API symbols in Linux kernel module linux-bcm-diag-full.
</td></tr><tr><td> SDK-33125 
 </td><td> Missing break statement in switch {} block in <tt>phy_combo65_adv_local_set</tt>
</td></tr><tr><td> SDK-33128 
 </td><td> Adjusted requeue check in BCM88230 TDM table programming so that it would automatically adapt to whether the requeue path is actually in use, in any of the supported modes.
</td></tr><tr><td> SDK-33153 
 </td><td> Change to allow <tt>bcm_port_rate_egress_set</tt> to program rate even when burst size is set to 0. This has no actual effect on traffic. This is just to let it return the same rate value on get function.
</td></tr><tr><td> SDK-33163 
 </td><td> Fixed <tt>bcm_oam_endpoint_get</tt>() API for Enduro and Triumph2 device.
</td></tr><tr><td> SDK-33164 
 </td><td> Add the support of phy54640 and phy54684 for ROBO devices.
</td></tr><tr><td> SDK-33171 
 </td><td> Fix LM counter issue for endpoints on the same port and vlan but belonging to different MAs.
</td></tr><tr><td> SDK-33174 
 </td><td> <tt>EGRMETERINGCONFIG_64</tt>.cpu0 is being configured for rx rate and mode appropriately.
</td></tr><tr><td> SDK-33185 
 </td><td> Added null-pointer check to BCM API port translation macros.
</td></tr><tr><td> SDK-33192 
 </td><td> Some PHYs missing in 'version' command .
</td></tr><tr><td> SDK-33195 
 </td><td> Support added to <tt>bcm_switch_control_set</tt> API to set the field <tt>PWACH_TOCPU</tt> in the register <tt>ING_MISC_CONFIG</tt>. This setting is to trap the PW VCCV control packets to CPU.
</td></tr><tr><td> SDK-33202 
 </td><td> Avoid <tt>in_irq</tt>() and use <tt>in_interrupt</tt>() consistently in Linux kernel mode drivers.
</td></tr><tr><td> SDK-33221 SDK-33391
 </td><td> <tt>phy_54640_ability_remote_get</tt>() now returns the correct remote ability for BCM54640/54640E.
</td></tr><tr><td> SDK-33222 
 </td><td> <tt>bcm_multi_stat_get</tt>() now returns correct error code or <tt>BCM_E_NONE</tt> on BCM88230 devices.
</td></tr><tr><td> SDK-33223 
 </td><td> Added cold boot and warm boot support for bcmFieldActionInnerVlanCfiNew and bcmFieldActionOuterVlanCfiNew VFP actions for Trident family of devices.
</td></tr><tr><td> SDK-33231 
 </td><td> Clear LB port bitmap at chip driver init when internal loopback is not defined and not supported on the chip.
</td></tr><tr><td> SDK-33234 
 </td><td> Fixed stuck transmitter in KNET Linux kernel module under heavy load.
</td></tr><tr><td> SDK-33240 
 </td><td> Fixed certain rate failure of <tt>bcm_cosq_gport_bandwidth_set</tt>() API on ingress shapers of BCM88230 devices.
</td></tr><tr><td> SDK-33242 
 </td><td> Fixed MPLS APIs for proper handling of Explicit-<tt>NULL</tt> label.
</td></tr><tr><td> SDK-33263 
 </td><td> Fixed cold and warm boot support for following FP actions on Raptor/Raven devices:
bcmFieldActionCopyToCpu, bcmFieldActionGpCopyToCpu, bcmFieldActionYpCopyToCpu, bcmFieldActionRpCopyToCpu and  bcmFieldActionSwitchToCpuCancel
</td></tr><tr><td> SDK-33265 
 </td><td> RC load for ROBO chips is now mandatory
</td></tr><tr><td> SDK-33269 
 </td><td> Reduced local burst size when less than 10 DDR memory devices are used with BCM88230 devices.
</td></tr><tr><td> SDK-33289 
 </td><td> Fixed <tt>mpls_tunnel_switch_delete</tt>/<tt>_add</tt> (modify) when the initial <tt>mpls_entry</tt>'s action is SWAP and <tt>egress_label</tt>.label=<tt>BCM_MPLS_LABEL_INVALID</tt>.
</td></tr><tr><td> SDK-33321 SDK-32115
 </td><td> Fixed mirroring to remote module issue on BCM56840.
</td></tr><tr><td> SDK-33322 
 </td><td> The configuration of non-local mirror tunnel destinations on BCM5684x was incorrect. The configuration is now fixed, and the mirror module documentation has been updated to describe the API behavior for BCM5684x-only vs. mixed device stacked systems.
</td></tr><tr><td> SDK-33326 
 </td><td> Within L3IngressInterfaceMapSet mode fixed <tt>bcm_vlan_control_vlan_set</tt>/get API to block the setting of <tt>L3_IIF</tt>.VRF
</td></tr><tr><td> SDK-33335 
 </td><td> Updated Triumph2 field module implementation to use the <tt>DOUBLE_WIDE_KEY</tt>
support of <tt>FP_GLOBAL_MASK_TCAM</tt> table for IFP qualifiers.
</td></tr><tr><td> SDK-33337 
 </td><td> Correct the initialization value for updating the source module of a mirrored packet on devices which support only directed mirroring.
</td></tr><tr><td> SDK-33338 
 </td><td> Fixed implementation of <tt>BCM_TRUNK_MEMBER_EGRESS_DISABLE</tt> flag on XGS3 devices.
</td></tr><tr><td> SDK-33341 
 </td><td> Added check to prevent Diag Shell Command CellDataTest crash on unsupported device.
</td></tr><tr><td> SDK-33343 
 </td><td> Updated bcm_field_qualify_InPort/InPorts() APIs to include loopback port in <tt>IPBM_MASK</tt> value of the FP entry.
If the device supports <tt>internal_loopback</tt> feature and InPort/InPorts is qualified for the entry, to prevent false ingress port matches.
</td></tr><tr><td> SDK-33346 
 </td><td> Switch back <tt>burst_quantum</tt> to <tt>min_quantum</tt> as it changes the granularity and reduces the min bandwidth config resolution.
</td></tr><tr><td> SDK-33355 
 </td><td> Updated <tt>bcm_field_entry_copy_id</tt>(),<tt>bcm_field_entry_prio_set</tt>() and <tt>bcm_field_group_compress</tt>() APIs for Trident family of devices to handle
double wide (paired) <tt>IPBM_OVERLAY</tt> entries during the entry move operation.
</td></tr><tr><td> SDK-33375 
 </td><td> Enabled Higig Trunk resolution and Trunk resolution for FP Redirect , Replace PBM or OR PBM action packets for Trident Device.
</td></tr><tr><td> SDK-33382 
 </td><td> Fixed implementation of <tt>BCM_TRUNK_MEMBER_EGRESS_DISABLE</tt> flag on XGS3 devices.
</td></tr><tr><td> SDK-33388 
 </td><td> Updated bcm_field_qualify_RangeCheck() API to setup <tt>intf_class_sel</tt> selector code value
correctly for groups that share a slice for Triumph and Triumph2 family of devices.
</td></tr><tr><td> SDK-33390 
 </td><td> Fixed warm boot recovery of CPU port TDM index value in <tt>ARP_TDM_TABLE</tt> for Enduro and Triumph2/Apollo device.
</td></tr><tr><td> SDK-33391 SDK-33221
 </td><td> Fixed the remote ability routines in phy54682.c and phyfege.c.
</td></tr><tr><td> SDK-33395 
 </td><td> Support added for all CPU port COS Queues present in the <tt>bcm_cosq_port_mapping_set</tt>/get, <tt>bcm_cosq_port_bandwidth_set</tt>/get, <tt>bcm_cosq_gport_bandwidth_set</tt>/get, <tt>bcm_cosq_gport_sched_set</tt>/get APIs.
</td></tr><tr><td> SDK-33396 
 </td><td> Fixed VPWS Failover port for <tt>BCM_MPLS_PORT_REPLACE</tt> functionality.
</td></tr><tr><td> SDK-33403 
 </td><td> Added support for "<tt>sirius_ddr3_tread_enb</tt>" configuration property override for 10K byte buffer mode of BCM88230 devices.
</td></tr><tr><td> SDK-33406 
 </td><td> Fixed <tt>bcm_mpls_port_add</tt> API for flag=<tt>BCM_MPLS_PORT_MATCH_PORT_INNER_VLAN</tt>
</td></tr><tr><td> SDK-33411 
 </td><td> Updated support matrix and field API documentation for new field control elements bcmFieldControlRedirectNonUcastEtherTrunkResolve and bcmFieldControlRedirectNonUcastFabricTrunkResolve in SDK.
</td></tr><tr><td> SDK-33425 
 </td><td> Prevent multicast group from being destroyed when an IPMC address entry referring to the multicast group could not be added due to IPMC table full.
</td></tr><tr><td> SDK-33472 
 </td><td> Added support for <tt>BCM_TRUNK_MEMBER_UNICAST_EGRESS_DISABLE</tt> flag on XGS3 devices.
</td></tr><tr><td> SDK-33474 
 </td><td> Added support for <tt>BCM_TRUNK_MEMBER_UNICAST_EGRESS_DISABLE</tt> flag on XGS3 devices.
</td></tr><tr><td> SDK-33482 
 </td><td> Implemented <tt>bcm_esw_mpls_tunnel_initiator_clear_all</tt> API, which used to return <tt>BCM_E_UNAVAIL</tt>.
</td></tr><tr><td> SDK-33484 
 </td><td> Fix <tt>bcm_tx_cos_rate_set</tt> when cosq is between 0 to 3 on BCM5684x.
</td></tr><tr><td> SDK-33496 
 </td><td> Fix Linux SLAB corruption when KNET module receives burst of packets larger than assigned Rx buffer size.
</td></tr><tr><td> SDK-33518 
 </td><td> Added a special solution in order to reduce latency for EF traffic on BCM88230 devices running in the "264 port" mode.
</td></tr><tr><td> SDK-33519 
 </td><td> CPU port on BCM88230 devices was not sending traffic when the device was initialized in "<tt>fabric_egress_setup</tt>=0" configuration.
</td></tr><tr><td> SDK-33525 
 </td><td> Adjusted <tt>bcm_tx</tt>/rx() on BCM88230 CPU port to only support COS 0 as this is the only COS supported by hardware.
</td></tr><tr><td> SDK-33547 
 </td><td> Updated field STATs implementation for Ingress stage i.e <tt>bcm_field_entry_stat_attach</tt>() and <tt>bcm_field_entry_install</tt>/reinstall()
API. To check and return <tt>BCM_E_CONFIG</tt> error, when user tries to share a <tt>STAT_ID</tt> created on primary slice
with entries created on the expanded slice. Counters are per-slice resource for ingress stage.
</td></tr><tr><td> SDK-33568 
 </td><td> Fixed ECMP scalability issue for BCM5663x devices.
</td></tr><tr><td> SDK-33569 
 </td><td> During <tt>bcm_l2_addr_freeze</tt>/thaw operations, do not cache or restore the virtual port CML information if no virtual ports are presently configured on the device.
</td></tr><tr><td> SDK-33583 SDK-33064 SDK-33064
 </td><td> Enabled software initialization (during Port module initialization) of <tt>ING_PRI_CNG_MAP</tt> table for Triumph device.
</td></tr><tr><td> SDK-33587 
 </td><td> Enable the MAC SA learning for the reserved multicast packets on ROBO devices.
</td></tr><tr><td> SDK-33601 
 </td><td> Fix deletion of <tt>INITIAL_L3_ECMP</tt> table entry during <tt>ecmp_grp_delete</tt> for BCM56840 device family.
</td></tr><tr><td> SDK-33603 
 </td><td> Fixed <tt>bcm_xgs3_ecmp_group_del</tt>() for devices without support for dynamic ecmp group size.
</td></tr><tr><td> SDK-33605 
 </td><td> Fix out of band RCPU receive thread startup failure on linux.
</td></tr><tr><td> SDK-33614 
 </td><td> Sirius: Added ownership tracking of certain resources and adjusted SDK so it no longer overwrites resources it does not own (that have been taken over by the application).
</td></tr><tr><td> SDK-33617 
 </td><td> Update of backplane PHY preemphasis vi "phy control" Diag Shell command updated only lane 0 registers on XCore fabric devices. The read of the preemphasis was incorrect when the serdes speed was greater than 3.125G. The problem was fixed so that the preemphasis can be both read and written.
</td></tr><tr><td> SDK-33618 
 </td><td> The <tt>bcm_port_tpid_</tt>* APIs have been enhanced to configure outer TPID on a per (module, port) basis on BCM56840.
</td></tr><tr><td> SDK-33623 
 </td><td> Add out of band flow control (OOBFC) for BCM5684x.
</td></tr><tr><td> SDK-33626 
 </td><td> Addition check added to the BCM5464 drivers to allow Serdes-to-GMII mode.
</td></tr><tr><td> SDK-33641 
 </td><td> Correct MTP reference count logic for XGS directed mirroring.
</td></tr><tr><td> SDK-33643 
 </td><td> fixed <tt>bcm_cosq_gport_delete</tt> API failure when bcmCosqControlFabricConnectMaxTime and bcmCosqControlFabricConnectMinUtilzation are both configured for bcm88230 device
</td></tr><tr><td> SDK-33646 
 </td><td> Ported TR2 ecmp scalability fixes to BCM5652x and BCM56685.
</td></tr><tr><td> SDK-33647 
 </td><td> Fixed 64-bit Robo support for compilers that do not support long long.
</td></tr><tr><td> SDK-33649 
 </td><td> Setting of <tt>BCM_PORT_PHY_CONTROL_EEE_TRANSMIT_WAKE_TIME</tt> will now not be done in the native mode for EEE capable PHYs.
</td></tr><tr><td> SDK-33650 
 </td><td> Allow to enable field processor bypass mode on BCM5684x.
</td></tr><tr><td> SDK-33659 
 </td><td> Fixed linkscan process to invoke software trunk failover on BCM5684x.
</td></tr><tr><td> SDK-33666 
 </td><td> Added Test and verified ...
</td></tr><tr><td> SDK-33679 
 </td><td> Fix unicast queue index calculation for bcmCosqStatDroppedPackets of <tt>bcm_cosq_stat_get</tt> API.
</td></tr><tr><td> SDK-33681 
 </td><td> updated the regression suite so that we test the VLAN translate traverse handles max index of tables
</td></tr><tr><td> SDK-33703 
 </td><td> Fixed functionality of <tt>bcm_l3_host_add</tt> API with flag=<tt>BCM_L3_L2TOCPU</tt>
</td></tr><tr><td> SDK-33713 
 </td><td> Fixed the issue about the IMP port can't be added as multicast member port for BCM53101 and BCM53125.
</td></tr><tr><td> SDK-33724 
 </td><td> When returning egress multistat statistics using an egress group GPORT, the counter improperly neglected the cosq loop when returning the stats if all cosq counters are requested. This oversight has been fixed for BCM88230 devices.
</td></tr><tr><td> SDK-33734 
 </td><td> Added Tcl Support
</td></tr><tr><td> SDK-33745 
 </td><td> Fixed <tt>AUX_TAG</tt> per-slice selector code programming logic for Trident Device.
</td></tr><tr><td> SDK-33769 
 </td><td> Fixed programming error in configuring ECMP on <tt>BCM56840_B1</tt> device family.
</td></tr><tr><td> SDK-33799 
 </td><td> Suppress PLL not lock warning message when ESM is not configured.
</td></tr><tr><td> SDK-33843 
 </td><td> Fixed switch control bcmSwitchUnknownVlanToCpu on BCM56634.
</td></tr><tr><td> SDK-33845 
 </td><td> Fixed the failure of DOS prevention for SYN packets with source port less than 1024 on BCM53115 and BCM53125.
</td></tr><tr><td> SDK-33855 
 </td><td> Fix issue with the port bitmap mask used for updating untagged vlan ports. The changes done in SDK-31422 were incorrectly setting the port bitmap to be the same as the ingress port bitmap for pre TD devices.
</td></tr><tr><td> SDK-33860 
 </td><td> Fixed <tt>bcm_vlan_dtag_range_add</tt> and <tt>bcm_vlan_dtag_range_traverse</tt> APIs.
</td></tr><tr><td> SDK-33861 
 </td><td> On a stacked VPLS configuration, <tt>VLAN_CHECKS</tt> is disabled for HiGig ingress packets.
</td></tr><tr><td> SDK-33885 
 </td><td> Fixed wrong maximum bucket setting in <tt>bcm_rx_cos_burst_set</tt> API for Enduro.
</td></tr><tr><td> SDK-33901 
 </td><td> default <tt>hold_ts</tt> to 7 for subscriber queue of bcm88230 devices
</td></tr><tr><td> SDK-33912 
 </td><td> Fix occasional <tt>bcm_l2_addr_add</tt> crash on BCM56624 with ESM.
</td></tr><tr><td> SDK-33915 
 </td><td> Fix API port translation and RPC stubs for <tt>bcm_fabric_qsel_entry_multi_set</tt>/get.
</td></tr><tr><td> SDK-33921 
 </td><td> Update auto inclusion of serdes/PHY driver support based on switch device selection.
This resolves a partial chip support  build issue with Hurricane family of devices.
</td></tr><tr><td> SDK-33948 
 </td><td> Fix BCM5684x <tt>PORT_GROUP4</tt> and <tt>PORT_GROUP5</tt> registers access problem when port 1 is not configured.
</td></tr><tr><td> SDK-34019 
 </td><td> Fixed LOOPBACK TYPE field value programming in <tt>FP_TCAM</tt> table for
bcmFieldLoopbackTypeMirror Ingress qualifier for Apollo and Triumph2 device.
</td></tr><tr><td> SDK-34033 
 </td><td> support level 7 ingress shaper on bcm88230 device
</td></tr><tr><td> SDK-34050 
 </td><td> Do not receive RCPU packets until RX thread is started.
</td></tr><tr><td> SDK-34059 
 </td><td> Fixed potential buffer overrun in XGS Board End-to-end flow control (stacking application).
</td></tr><tr><td> SDK-34093 
 </td><td> Updated field counter move routine to correctly handle the STATS that are moved across physical slice boundary.
This routine is called by <tt>bcm_field_entry_prio_set</tt>() API.
</td></tr><tr><td> SDK-34117 
 </td><td> Update unit validity checks in BCM API dispatch layer to avoid buffer overflow error flagged by static analysis tools.
</td></tr><tr><td> SDK-34155 
 </td><td> Prevent multicast group from being destroyed when an IPMC address entry referring to the multicast group could not be added due to IPMC table full.
</td></tr><tr><td> SDK-34173 
 </td><td> Eliminate spurious parity error reports during hash table management operations in BCM5663x and BCM5652x devices.
</td></tr><tr><td> SDK-34186 
 </td><td> Added an integrity check while returning the value of <tt>BCM_PORT_PHY_CONTROL_PORT_OFFSET</tt> to avoid failure when a certain sequence is observed.
</td></tr><tr><td> SDK-34270 
 </td><td> Fixed bcmFieldQualifyMplsTerminated qualifier support for Apollo and Valkyrie2 devices in SDK.
</td></tr><tr><td> SDK-34271 
 </td><td> Fixed crash of <tt>bcm_vlan_port_add</tt> API on BCM56634 device when adding the internal loopback port to VLAN.
</td></tr><tr><td> SDK-34292 
 </td><td> Fixed <tt>BCM_E_RESOURCE</tt> situation during <tt>mpls_port_add</tt> with REPLACE flag.
</td></tr><tr><td> SDK-34306 
 </td><td> Ensure both pending and non-pending ARL/MARL entry will be removed properly through <tt>bcm_l2_addr_delete</tt>() API for BCM53280 devices.
</td></tr><tr><td> SDK-34351 
 </td><td> Fixed warm boot recovery code to correctly recover entries from an expanded Intraslice double-wide mode group from VFP and IFP stages.
This fix is applicable to all Triumph and Chariot class devices.
</td></tr><tr><td> SDK-34370 
 </td><td> Fixed resource leak issue in warm boot recovery code for Firebolt and Triumph family of devices.
</td></tr><tr><td> SDK-34375 
 </td><td> Correct return value of <tt>bcm_l2_addr_add</tt>() for BCM53280 chips with <tt>BCM_L2_REPLACE_DYNAMIC</tt> flag asserted the condition when ARL table is full with all static entries.
</td></tr><tr><td> SDK-34393 
 </td><td> Fix partial builds with KNET feature enabled.
</td></tr><tr><td> SDK-34422 
 </td><td> Add notify driver for 53xxx internal serdes phy
</td></tr><tr><td> SDK-34486 
 </td><td> Fixed the issue that the ARL software learning mode failed on ROBO GE chips.
</td></tr><tr><td> SDK-34501 
 </td><td> Updated <tt>bcm_field_entry_policer_attach</tt>() to return <tt>BCM_E_UNAVAIL</tt> error code when Level1 policers are attached to FP entries on Trident device.
Trident device does not support hierarchical metering.
</td></tr><tr><td> SDK-34506 
 </td><td> STG 0 may not be destroyed in XGS devices.
</td></tr><tr><td> SDK-34575 
 </td><td> Fixed KNET API to properly support the full set of Rx reason codes in KNET filters on BCM5662x and BCM5663x devices.
</td></tr></tbody></table><br><br><hr noshade><br><br>
    <a name=section_platforms>
    <h3>Section 7:  Device and Platform Support
</h3>
<p>The section describes all devices, platforms, and operating
systems that are supported by this release. 
<br><hr noshade><a name="devices"></a>
<h3>Section 7.1:   Switch Devices
</h3>
<p><h3>Table 109:   Switch Devices
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Family</b></td><td><b>  Devices</b></td><td><b> Description
</b></td></tr><tr><td> BCM5324
</td><td> BCM5324 A0
</td><td> Single-Chip L2+ Managed Switch with 24 10/100 Ports + 2 GbE Ports
</td></tr><tr><td></td><td> BCM5324 A1
</td><td></td></tr><tr><td></td><td> BCM5324 A2
</td><td></td></tr><tr><td> BCM5347
</td><td> BCM5347 A0
</td><td> Managed Switch with 24 10/100 Ports + Four GbE Ports
</td></tr><tr><td></td><td> BCM5347 A1
</td><td></td></tr><tr><td> BCM5348
</td><td> BCM5348 A0
</td><td> Single-Chip L2+ Managed Switch with 48 10/100 Ports + Four GbE Ports
</td></tr><tr><td></td><td> BCM5348 A1
</td><td></td></tr><tr><td> BCM5389
</td><td> BCM5389 A0
</td><td> 8-Port GbE Switch with Integrated SerDes
</td></tr><tr><td></td><td> BCM5389 A1
</td><td></td></tr><tr><td> BCM5395
</td><td> BCM5395 A0
</td><td> Multiport Gigabit Ethernet Switch
</td></tr><tr><td> BCM5396
</td><td> BCM5396 A0
</td><td> 16-Port GbE Switch with Integrated SerDes
</td></tr><tr><td> BCM5397
</td><td> BCM5397 A0
</td><td> 6-Port GbE Switch With 5 Integrated PHYs and LoopDTech
</td></tr><tr><td> BCM5398
</td><td> BCM5398 A0
</td><td> 9-Port GbE Switch With 8 Integrated PHYs and LoopDTech
</td></tr><tr><td> BCM53101
</td><td> BCM53101 A0
</td><td> 5-Port Fast Ethernet Managed Switch + 1 Fast Ethernet WAN port
</td></tr><tr><td></td><td> BCM53101 B0
</td><td></td></tr><tr><td> BCM53115
</td><td> BCM53115 A0
</td><td> 5-Port GbE Managed Switch + 1 Gigabit WAN port with integrated serdes
</td></tr><tr><td></td><td> BCM53115 A1
</td><td></td></tr><tr><td></td><td> BCM53115 B0
</td><td></td></tr><tr><td></td><td> BCM53115 B1
</td><td></td></tr><tr><td></td><td> BCM53115 C0
</td><td></td></tr><tr><td> BCM53118
</td><td> BCM53118 A0
</td><td> 8-Port Gigabit Ethernet Switch
</td></tr><tr><td></td><td> BCM53118 B0
</td><td></td></tr><tr><td></td><td> BCM53118 B1
</td><td></td></tr><tr><td> BCM53125
</td><td> BCM53125 A0
</td><td> 5-Port Gigabit Ethernet Switch with 1 Gigabit WAN port and 8051 processor
</td></tr><tr><td></td><td> BCM53125 B0
</td><td></td></tr><tr><td> BCM53128
</td><td> BCM53128 A0
</td><td> 8-Port Gigabit Ethernet Switch with embedded 8051 processor
</td></tr><tr><td></td><td> BCM53128 B0
</td><td></td></tr><tr><td> BCM53242
</td><td> BCM53242 A0
</td><td> Managed Switch with 24 FE Ports + 2 GbE Interface
</td></tr><tr><td></td><td> BCM53242 B0
</td><td></td></tr><tr><td></td><td> BCM53242 B1
</td><td></td></tr><tr><td></td><td> BCM53262 A0
</td><td> Managed Switch with 24 FE Ports + 4 GbE Interface
</td></tr><tr><td></td><td> BCM53262 B0
</td><td></td></tr><tr><td></td><td> BCM53262 B1
</td><td></td></tr><tr><td> BCM53280
</td><td> BCM53282 A0
</td><td> 8-Port Fast Ethernet + 2-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM53282 B0
</td><td></td></tr><tr><td></td><td> BCM53282 B1
</td><td></td></tr><tr><td></td><td> BCM53282 B2
</td><td></td></tr><tr><td></td><td> BCM53283 A0
</td><td> 16-Port Fast Ethernet + 2-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM53283 B0
</td><td></td></tr><tr><td></td><td> BCM53283 B1
</td><td></td></tr><tr><td></td><td> BCM53283 B2
</td><td></td></tr><tr><td></td><td> BCM53284 A0
</td><td> 24-Port Fast Ethernet + 2-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM53284 B0
</td><td></td></tr><tr><td></td><td> BCM53284 B1
</td><td></td></tr><tr><td></td><td> BCM53284 B2
</td><td></td></tr><tr><td></td><td> BCM53286 A0
</td><td> 24-Port Fast Ethernet + 4-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM53286 B0
</td><td></td></tr><tr><td></td><td> BCM53286 B1
</td><td></td></tr><tr><td></td><td> BCM53286 B2
</td><td></td></tr><tr><td></td><td> BCM53288 A0
</td><td> 24-Port Fast Ethernet + 2-Port Gigabit Ethernet Multilayer Switch
   with one 2.5GbE Uplink Port
</td></tr><tr><td></td><td> BCM53288 B0
</td><td></td></tr><tr><td></td><td> BCM53288 B1
</td><td></td></tr><tr><td></td><td> BCM53288 B2
</td><td></td></tr><tr><td> BCM53300
</td><td> BCM53300 A0
</td><td> Managed 24-port L2 Switch
</td></tr><tr><td></td><td> BCM53300 A1
</td><td></td></tr><tr><td></td><td> BCM53301 A0
</td><td> Managed 16-port L2 Switch
</td></tr><tr><td></td><td> BCM53301 A1
</td></tr><tr><td></td><td> BCM53302 A0
</td><td> Managed 24-port L2 Switch
</td></tr><tr><td></td><td> BCM53302 A1
</td><td></td></tr><tr><td> BCM53310
</td><td> BCM53312 A0
</td><td> BCM53312 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53312 B0
</td><td></td></tr><tr><td></td><td> BCM53313 A0
</td><td> BCM53313 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53313 B0
</td><td></td></tr><tr><td></td><td> BCM53314 A0
</td><td> BCM53314 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53314 B0
</td><td></td></tr><tr><td> BCM53320
</td><td> BCM53322 A0
</td><td> BCM53322 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53323 A0
</td><td> BCM53323 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53324 A0
</td><td> BCM53324 Integrated Multilayer Switch and CPU
</td></tr><tr><td> BCM53600
</td><td> BCM53602 A0
</td><td> 8-Port Fast Ethernet + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td></td><td> BCM53603 A0
</td><td> 16-Port Fast Ethernet + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td></td><td> BCM53604 A0
</td><td> 24-Port Fast Ethernet + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td></td><td> BCM53606 A0
</td><td> 24-Port FE with S3MII interface + 3-Port Gigabit Ethernet Switch with one 1/2G-EPON ONU MAC/SerDes
   and embedded 600MHz MIPS32 74K processor
</td></tr><tr><td> BCM53710
</td><td> BCM53714 A0
</td><td> BCM56714 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53714 A1
</td><td></td></tr><tr><td></td><td> BCM53714 A2
</td><td></td></tr><tr><td></td><td> BCM53716 A0
</td><td> BCM56716 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53716 A1
</td><td></td></tr><tr><td></td><td> BCM53716 A2
</td><td></td></tr><tr><td></td><td> BCM53718 A0
</td><td> BCM56718 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM53718 A1
</td><td></td></tr><tr><td></td><td> BCM53718 A2
</td><td></td></tr><tr><td> BCM53720
</td><td> BCM53724 A0
</td><td> Managed 24-port L2 Switch with Integrated CPU
</td></tr><tr><td></td><td> BCM53724 B0
</td><td></td></tr><tr><td></td><td> BCM53726 A0
</td><td> Managed 24-port L2 Switch with Integrated CPU
</td></tr><tr><td></td><td> BCM53726 B0
</td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM5650
</td><td> BCM5650 A0
</td><td> 24-Port BCM5650 Integrated Multi-Layer Switch
</td></tr><tr><td></td><td> BCM5650 B0
</td><td></td></tr><tr><td></td><td> BCM5650 C0
</td><td></td></tr><tr><td></td><td> BCM5655 A0
</td><td> 48-Port BCM5655 Integrated Multi-Layer Switch
</td></tr><tr><td></td><td> BCM5655 B0
</td><td></td></tr><tr><td> BCM5665
</td><td> BCM5665 A0
</td><td> 48-Port BCM5665 Integrated Multi-Layer Switch
</td></tr><tr><td></td><td> BCM5665 B0
</td><td></td></tr><tr><td> BCM5670
</td><td> BCM5670 A0
</td><td> BCM5670 8-Port, 160 Gbps Switch Fabric
</td></tr><tr><td></td><td> BCM5670 A1
</td><td></td></tr><tr><td></td><td> BCM5671 A0
</td><td> BCM5671 4-Port, 80-Gbps Switch Fabric
</td></tr><tr><td></td><td> BCM5671 A1
</td><td></td></tr><tr><td></td><td> BCM5671 A2
</td><td></td></tr><tr><td> BCM5673
</td><td> BCM5673 A0
</td><td> 10 Gigabit Ethernet/HiGig Multilayer Switch
</td></tr><tr><td></td><td> BCM5673 A1
</td><td></td></tr><tr><td></td><td> BCM5673 A2
</td><td></td></tr><tr><td> BCM5674
</td><td> BCM5674 A0
</td><td> Multilayer 2-Port 10 Gigabit Ethernet and HiGig+ Switch
</td></tr><tr><td> BCM5675
</td><td> BCM5675 A0
</td><td> 8-Port, 192-Gbps Switch Fabric
</td></tr><tr><td></td><td> BCM5675 A1
</td><td></td></tr><tr><td></td><td> BCM5676 A0
</td><td> 4-Port, 96-Gbps Switch Fabric
</td></tr><tr><td></td><td> BCM5676 A1
</td><td></td></tr><tr><td> BCM5690
</td><td> BCM5690 A0
</td><td> Scalable 12-Port Gigabit Ethernet MultiLayer Switch
</td></tr><tr><td></td><td> BCM5690 A1
</td><td></td></tr><tr><td></td><td> BCM5690 A2
</td><td></td></tr><tr><td></td><td> BCM5691 A0
</td><td> 12-Port Gigabit Ethernet MultiLayer Switch
</td></tr><tr><td></td><td> BCM5691 A1
</td><td></td></tr><tr><td></td><td> BCM5691 A2
</td><td></td></tr><tr><td></td><td> BCM5692 A0
</td><td> Scalable 12-Port Gigabit Ethernet Layer 2 Switch
</td></tr><tr><td></td><td> BCM5692 A1
</td><td></td></tr><tr><td></td><td> BCM5692 A2
</td><td></td></tr><tr><td></td><td> BCM5693 A0
</td><td> 12-Port Gigabit Ethernet Layer 2 Switch
</td></tr><tr><td></td><td> BCM5693 A1
</td><td></td></tr><tr><td></td><td> BCM5693 A2
</td><td></td></tr><tr><td> BCM5695
</td><td> BCM5695 A0
</td><td> MultiLayer 12-Port Gigabit Ethernet Stackable Switch
</td></tr><tr><td></td><td> BCM5695 A1
</td><td></td></tr><tr><td></td><td> BCM5695 B0
</td><td></td></tr><tr><td></td><td> BCM5696 A0
</td><td> Multilayer 12-Port Gigabit Ethernet Switch
</td></tr><tr><td></td><td> BCM5696 A1
</td><td></td></tr><tr><td></td><td> BCM5696 B0
</td><td></td></tr><tr><td></td><td> BCM5697 A0
</td><td> 12-Port Gigabit Ethernet Stackable Layer 2+ Switch
</td></tr><tr><td></td><td> BCM5697 A1
</td><td></td></tr><tr><td></td><td> BCM5697 B0
</td><td></td></tr><tr><td></td><td> BCM5698 A0
</td><td> 12-Port Gigabit Ethernet Layer 2+ Switch
</td></tr><tr><td></td><td> BCM5698 A1
</td><td></td></tr><tr><td></td><td> BCM5698 B0
</td><td></td></tr><tr><td> BCM56010
</td><td> BCM56014 A0
</td><td> 24-Port Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56014 A1
</td><td></td></tr><tr><td></td><td> BCM56014 A2
</td><td></td></tr><tr><td></td><td> BCM56018 A0
</td><td> 48-Port Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56018 A1
</td><td></td></tr><tr><td></td><td> BCM56018 A2
</td><td></td></tr><tr><td></td><td> BCM56018 A1
</td><td> 48-Port Integrated Multilayer Switch and CPU
</td></tr><tr><td> BCM56020
</td><td> BCM56024 A0
</td><td> 24-Port Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56024 B0
</td><td></td></tr><tr><td></td><td> BCM56025 A0
</td><td> 24-Port Integrated L2 Switch and CPU
</td></tr><tr><td></td><td> BCM56025 B0
</td><td></td></tr><tr><td></td><td> BCM56026 A0
</td><td> 24-Port Integrated L2 Switch and CPU
</td></tr><tr><td></td><td> BCM56026 B0
</td><td></td></tr><tr><td> BCM56100
</td><td> BCM56100 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56100 A1
</td><td></td></tr><tr><td></td><td> BCM56101 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Multilayer Switch with
One 10-Gigabit Ethernet/HiGig Port
</td></tr><tr><td></td><td> BCM56101 A1
</td><td></td></tr><tr><td></td><td> BCM56102 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Multilayer Switch with
Two 10-Gigabit Ethernet/HiGig Ports
</td></tr><tr><td></td><td> BCM56102 A1
</td><td></td></tr><tr><td></td><td> BCM56105 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Layer 2 Switch
</td></tr><tr><td></td><td> BCM56105 A1
</td><td></td></tr><tr><td></td><td> BCM56106 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Layer 2 Switch with One
10-Gigabit Ethernet/HiGig Port
</td></tr><tr><td></td><td> BCM56106 A1
</td><td></td></tr><tr><td></td><td> BCM56107 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Layer 2 Switch with Two
10-Gigabit Ethernet/HiGig Ports
</td></tr><tr><td></td><td> BCM56107 A1
</td><td></td></tr><tr><td> BCM56110
</td><td> BCM56110 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56111 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Multilayer Switch with
One 10-Gigabit Ethernet/HiGig Port
</td></tr><tr><td></td><td> BCM56112 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Multilayer Switch with
Two 10-Gigabit Ethernet/HiGig Ports
</td></tr><tr><td></td><td> BCM56115 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Layer 2 Switch
</td></tr><tr><td></td><td> BCM56116 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Layer 2 Switch with One
10-Gigabit Ethernet/HiGig Port
</td></tr><tr><td></td><td> BCM56117 A0
</td><td> 24-Port Fast Ethernet and 2-Port Gigabit Ethernet Layer 2 Switch with Two
10-Gigabit Ethernet/HiGig Ports
</td></tr><tr><td> BCM56130
</td><td> BCM56132 A0
</td><td> 24-Port Fast Ethernet Multilayer Switch with Two 10-GbE/HiGig2 and
Two 1G/2.5Gb Uplink Ports 
</td></tr><tr><td></td><td> BCM56132 B0
</td><td></td></tr><tr><td></td><td> BCM56134 A0
</td><td> 24-Port Fast Ethernet Multilayer Switch with four 1G/2.5Gb Uplink Ports
</td></tr><tr><td></td><td> BCM56134 B0
</td><td></td></tr><tr><td> BCM56140
</td><td> BCM56140 A0
</td><td> 24-Port Gigabit Ethernet/6-Port SGMII GbE Multilayer switch with combination of two/four 1G/2.5/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56142 A0
</td><td> 24-Port Gigabit Ethernet Multilayer switch with combination of two/four 1G/2.5/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56143 A0
</td><td> 24-Port Gigabit Ethernet Multilayer switch with combination of two/four 1G/2.5/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56144 A0
</td><td> 16-Port Gigabit Ethernet Multilayer switch with four 1G/2.5HG Uplink Ports
</td></tr><tr><td></td><td> BCM56146 A0
</td><td> 24-Port Fast-Ethernet Multilayer switch with four 2.5HG Uplink Ports
</td></tr><tr><td></td><td> BCM56147 A0
</td><td> 24-Port Fast-Ethernet Multilayer switch with combination of one/two/four 1G/2.5G/10/12/13HG Uplink Ports
</td></tr><tr><td> BCM56210
</td><td> BCM56212 A0
</td><td></td></tr><tr><td></td><td> BCM56212 A1
</td><td></td></tr><tr><td></td><td> BCM56212 A2
</td><td></td></tr><tr><td></td><td> BCM56213 A0
</td><td></td></tr><tr><td></td><td> BCM56213 A1
</td><td></td></tr><tr><td></td><td> BCM56213 A2
</td><td></td></tr><tr><td></td><td> BCM56214 A0
</td><td> BCM56214 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56214 A1
</td><td></td></tr><tr><td></td><td> BCM56214 A2
</td><td></td></tr><tr><td></td><td> BCM56215 A0
</td><td></td></tr><tr><td></td><td> BCM56215 A1
</td><td></td></tr><tr><td></td><td> BCM56215 A2
</td><td></td></tr><tr><td></td><td> BCM56216 A0
</td><td> BCM56216 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56216 A1
</td><td></td></tr><tr><td></td><td> BCM56216 A2
</td><td></td></tr><tr><td></td><td> BCM56217 A0
</td><td></td></tr><tr><td></td><td> BCM56217 A1
</td><td></td></tr><tr><td></td><td> BCM56217 A2
</td><td></td></tr><tr><td></td><td> BCM56218 A0
</td><td> BCM56218 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56218 A1
</td><td></td></tr><tr><td></td><td> BCM56218 A2
</td><td></td></tr><tr><td></td><td> BCM56219 A0
</td><td> BCM56219 Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56219 A1
</td><td></td></tr><tr><td></td><td> BCM56219 A2
</td><td></td></tr><tr><td> BCM56220
</td><td> BCM56224 A0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56224 B0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56225 A0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56225 B0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56226 A0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56226 B0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56227 A0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56227 B0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56228 A0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56228 B0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56229 A0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56229 B0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td> BCM56300
</td><td> BCM56300 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56300 A1
</td><td></td></tr><tr><td></td><td> BCM56300 B0
</td><td></td></tr><tr><td></td><td> BCM56300 B1
</td><td></td></tr><tr><td></td><td> BCM56301 A0
</td><td> Four 10-Gigabit Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56301 A1
</td><td></td></tr><tr><td></td><td> BCM56301 B0
</td><td></td></tr><tr><td></td><td> BCM56301 B1
</td><td></td></tr><tr><td></td><td> BCM56302 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch with Two 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56302 A1
</td><td></td></tr><tr><td></td><td> BCM56302 B0
</td><td></td></tr><tr><td></td><td> BCM56302 B1
</td><td></td></tr><tr><td></td><td> BCM56303 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch with Three 10 Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56303 A1
</td><td></td></tr><tr><td></td><td> BCM56303 B0
</td><td></td></tr><tr><td></td><td> BCM56303 B1
</td><td></td></tr><tr><td></td><td> BCM56304 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch with Four 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56304 A1
</td><td></td></tr><tr><td></td><td> BCM56304 B0
</td><td></td></tr><tr><td></td><td> BCM56304 B1
</td><td></td></tr><tr><td></td><td> BCM56305 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56305 A1
</td><td></td></tr><tr><td></td><td> BCM56305 B0
</td><td></td></tr><tr><td></td><td> BCM56305 B1
</td><td></td></tr><tr><td></td><td> BCM56306 A0
</td><td> 16 Port Gigabit Ethernet Switch
</td></tr><tr><td></td><td> BCM56306 A1
</td><td></td></tr><tr><td></td><td> BCM56306 B0
</td><td></td></tr><tr><td></td><td> BCM56306 B1
</td><td></td></tr><tr><td></td><td> BCM56307 A0
</td><td> 24-Port GE L2 Switch with Two 10 GE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56307 A1
</td><td></td></tr><tr><td></td><td> BCM56307 B0
</td><td></td></tr><tr><td></td><td> BCM56307 B1
</td><td></td></tr><tr><td></td><td> BCM56308 A0
</td><td> 24-Port GE L2 Switch with Three 10 GE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56308 A1
</td><td></td></tr><tr><td></td><td> BCM56308 B0
</td><td></td></tr><tr><td></td><td> BCM56308 B1
</td><td></td></tr><tr><td></td><td> BCM56309 A0
</td><td> 24-Port GE L2 Switch with Four 10 GE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56309 A1
</td><td></td></tr><tr><td></td><td> BCM56309 B0
</td><td></td></tr><tr><td></td><td> BCM56309 B1
</td><td></td></tr><tr><td> BCM56310
</td><td> BCM56310 A0
</td><td> BCM56310 Series 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig+
Uplink Ports
</td></tr><tr><td></td><td> BCM56311 A0
</td><td> Four 10-Gigabit Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56312 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch with Two 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56313 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch with Three 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56314 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch with Four 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56315 A0
</td><td> BCM56310 Series 24-Port GbE Layer 2 Switch with Four 10-GbE/HiGig+
Uplink Ports
</td></tr><tr><td></td><td> BCM56316 A0
</td><td> Four 10-Gigabit Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56317 A0
</td><td> 24-Port Gigabit Ethernet Layer 2 Switch with Two 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56318 A0
</td><td> 24-Port Gigabit Ethernet Layer 2 Switch with Three 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56319 A0
</td><td> 24-Port Gigabit Ethernet Layer 2 Switch with Four 10-Gigabit
Ethernet/HiGig+ Ports
</td></tr><tr><td> BCM56320
</td><td> BCM56320 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56320 B0
</td><td></td></tr><tr><td></td><td> BCM56321 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56321 B0
</td><td></td></tr><tr><td> BCM56330
</td><td> BCM56331 A0
</td><td> 24-Port GbE Multilayer Switch with Four 2.5GbE Uplink Ports
</td></tr><tr><td></td><td> BCM56331 B0
</td><td></td></tr><tr><td></td><td> BCM56333 A0
</td><td> 16-Port GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56333 B0
</td><td></td></tr><tr><td></td><td> BCM56334 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56334 B0
</td><td></td></tr><tr><td></td><td> BCM56338 A0
</td><td> 8-Port GbE Multilayer Switch with two 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56338 B0
</td><td></td></tr><tr><td> BCM56440
</td><td> BCM56440 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/Hig2 Uplink ports
</td></tr><tr><td></td><td> BCM56441 A0
</td><td> 8-Port GbE Multilayer Switch with Two 10-GbE/Hig2 Uplink ports
</td></tr><tr><td></td><td> BCM56442 A0
</td><td> 16-Port GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56443 A0
</td><td> 8-Port 2.5GbE Multilayer Switch with Two 10-GbE/Hig2 Uplink ports
</td></tr><tr><td></td><td> BCM56445 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/Hig2 Uplink ports pin compatible with BCM56334
</td></tr><tr><td></td><td> BCM56446 A0
</td><td> 8-Port GbE Multilayer Switch with Two 10-GbE/Hig2 Uplink ports pin compatibe with BCM56338
</td></tr><tr><td></td><td> BCM56447 A0
</td><td> 16-Port GbE Multilayer Switch pin compatible with BCM56333
</td></tr><tr><td></td><td> BCM56448 A0
</td><td> 24-Port GbE Multilayer Switch with Four 1GbE/ One 2.5G Uplink ports
</td></tr><tr><td> BCM56500
</td><td> BCM56500 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56500 A1
</td><td></td></tr><tr><td></td><td> BCM56500 B0
</td><td></td></tr><tr><td></td><td> BCM56500 B1
</td><td></td></tr><tr><td></td><td> BCM56500 B2
</td><td></td></tr><tr><td></td><td> BCM56501 A0
</td><td> Four 10-Gigabit Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56501 A1
</td><td></td></tr><tr><td></td><td> BCM56501 B0
</td><td></td></tr><tr><td></td><td> BCM56501 B1
</td><td></td></tr><tr><td></td><td> BCM56501 B2
</td><td></td></tr><tr><td></td><td> BCM56502 A0
</td><td> 24-Port GbE Multilayer Switch with Two 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56502 A1
</td><td></td></tr><tr><td></td><td> BCM56502 B0
</td><td></td></tr><tr><td></td><td> BCM56502 B1
</td><td></td></tr><tr><td></td><td> BCM56502 B2
</td><td></td></tr><tr><td></td><td> BCM56503 A0
</td><td> 24-Port GbE Multilayer Switch with Three 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56503 A1
</td><td></td></tr><tr><td></td><td> BCM56503 B0
</td><td></td></tr><tr><td></td><td> BCM56503 B1
</td><td></td></tr><tr><td></td><td> BCM56503 B2
</td><td></td></tr><tr><td></td><td> BCM56504 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56504 A1
</td><td></td></tr><tr><td></td><td> BCM56504 B0
</td><td></td></tr><tr><td></td><td> BCM56504 B1
</td><td></td></tr><tr><td></td><td> BCM56504 B2
</td><td></td></tr><tr><td></td><td> BCM56505 A0
</td><td> 24-Port GbE Layer 2 Switch
</td></tr><tr><td></td><td> BCM56505 A1
</td><td></td></tr><tr><td></td><td> BCM56505 B0
</td><td></td></tr><tr><td></td><td> BCM56505 B1
</td><td></td></tr><tr><td></td><td> BCM56505 B2
</td><td></td></tr><tr><td></td><td> BCM56506 A0
</td><td> Four 10-Gigabit Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56506 A1
</td><td></td></tr><tr><td></td><td> BCM56506 B0
</td><td></td></tr><tr><td></td><td> BCM56506 B1
</td><td></td></tr><tr><td></td><td> BCM56506 B2
</td><td></td></tr><tr><td></td><td> BCM56507 A0
</td><td> 24-Port GbE Layer 2 Switch with Two 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56507 A1
</td><td></td></tr><tr><td></td><td> BCM56507 B0
</td><td></td></tr><tr><td></td><td> BCM56507 B1
</td><td></td></tr><tr><td></td><td> BCM56507 B2
</td><td></td></tr><tr><td></td><td> BCM56508 A0
</td><td> 24-Port GbE Layer 2 Switch with Three 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56508 A1
</td><td></td></tr><tr><td></td><td> BCM56508 B0
</td><td></td></tr><tr><td></td><td> BCM56508 B1
</td><td></td></tr><tr><td></td><td> BCM56508 B2
</td><td></td></tr><tr><td></td><td> BCM56509 A0
</td><td> 24-Port GbE Layer 2 Switch with Four 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56509 A1
</td><td></td></tr><tr><td></td><td> BCM56509 B0
</td><td></td></tr><tr><td></td><td> BCM56509 B1
</td><td></td></tr><tr><td></td><td> BCM56509 B2
</td><td></td></tr><tr><td> BCM56510
</td><td> BCM56510 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56511 A0
</td><td> Four-Port 10-GbE/HiGig+ Multilayer Switch
</td></tr><tr><td></td><td> BCM56512 A0
</td><td> 24-Port GbE Multilayer Switch With Two 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56513 A0
</td><td> 24-Port GbE Multilayer Switch With Three 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56514 A0
</td><td> 24-Port GbE Multilayer Switch With Four 10-GbE/HiGig+ Ports
</td></tr><tr><td> BCM56520
</td><td> BCM56520 A0
</td><td> 24-Port GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56520 B0
</td><td></td></tr><tr><td></td><td> BCM56522 A0
</td><td> 24-Port GbE Multilayer Switch with Two 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56522 B0
</td><td></td></tr><tr><td></td><td> BCM56524 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56524 B0
</td><td></td></tr><tr><td></td><td> BCM56526 A0
</td><td> 28-Port GbE Multilayer Switch with Six 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56526 B0
</td><td></td></tr><tr><td> BCM56530
</td><td> BCM56534 B0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56538 B0
</td><td> 48-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td> BCM56580
</td><td> BCM56580 A0
</td><td> 16 x 2.5 GbE + 4 x 10 GbE Ethernet Multilayer Switch
</td></tr><tr><td> BCM56600
</td><td> BCM56600 A0
</td><td> 12 x GbE High-Feature Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56600 B0
</td><td></td></tr><tr><td></td><td> BCM56600 C0
</td><td></td></tr><tr><td></td><td> BCM56601 A0
</td><td> 12 x GbE High-Feature Ethernet Multilayer Switch With HiGig+ Uplink
</td></tr><tr><td></td><td> BCM56601 B0
</td><td></td></tr><tr><td></td><td> BCM56601 C0
</td><td></td></tr><tr><td></td><td> BCM56602 A0
</td><td> 10-GbE High-Feature Ethernet Multilayer Switch With HiGig+ Uplink
</td></tr><tr><td></td><td> BCM56602 B0
</td><td></td></tr><tr><td></td><td> BCM56602 C0
</td><td></td></tr><tr><td></td><td> BCM56603 A0
</td><td> HG+ High-Feature Ethernet Multilayer Proxy
</td></tr><tr><td></td><td> BCM56603 B0
</td><td></td></tr><tr><td></td><td> BCM56603 C0
</td><td></td></tr><tr><td></td><td> BCM56605 A0
</td><td> 12 x GbE High-Feature Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56605 B0
</td><td></td></tr><tr><td></td><td> BCM56605 C0
</td><td></td></tr><tr><td></td><td> BCM56606 A0
</td><td> 12 x GbE High-Feature Ethernet Multilayer Switch With HiGig+ Uplink
</td></tr><tr><td></td><td> BCM56606 B0
</td><td></td></tr><tr><td></td><td> BCM56606 C0
</td><td></td></tr><tr><td></td><td> BCM56607 A0
</td><td> 10-GbE High-Feature Ethernet Multilayer Switch With HiGig+ Uplink
</td></tr><tr><td></td><td> BCM56607 B0
</td><td></td></tr><tr><td></td><td> BCM56607 C0
</td><td></td></tr><tr><td></td><td> BCM56608 A0
</td><td> HG+ High-Feature Ethernet Multilayer Proxy
</td></tr><tr><td></td><td> BCM56608 B0
</td><td></td></tr><tr><td></td><td> BCM56608 C0
</td><td></td></tr><tr><td> BCM56620
</td><td> BCM56620 A0
</td><td></td></tr><tr><td></td><td> BCM56620 A1
</td><td></td></tr><tr><td></td><td> BCM56620 B0
</td><td></td></tr><tr><td></td><td> BCM56620 B1
</td><td></td></tr><tr><td></td><td> BCM56624 A0
</td><td> 49 port 1-GbE Multilayer Ethernet Switch with 4 x 10-GbE/HiGig2
Uplink ports and External Table Expansion
</td></tr><tr><td></td><td> BCM56624 A1
</td><td></td></tr><tr><td></td><td> BCM56624 B0
</td><td></td></tr><tr><td></td><td> BCM56624 B1
</td><td></td></tr><tr><td></td><td> BCM56624 B2
</td><td></td></tr><tr><td></td><td> BCM56626 A0
</td><td> 25 port 1-GbE Multilayer Ethernet Switch with 6 x 10-GbE/HiGig2 Uplink ports and External Table Expansion
</td></tr><tr><td></td><td> BCM56626 A1
</td><td></td></tr><tr><td></td><td> BCM56626 B0
</td><td></td></tr><tr><td></td><td> BCM56626 B1
</td><td></td></tr><tr><td></td><td> BCM56626 B2
</td><td></td></tr><tr><td></td><td> BCM56628 A0
</td><td> 8 port 10-GbE/HiGig2 Multilayer Ethernet Switch with External Table Expansion
</td></tr><tr><td></td><td> BCM56628 A1
</td><td></td></tr><tr><td></td><td> BCM56628 B0
</td><td></td></tr><tr><td></td><td> BCM56628 B1
</td><td></td></tr><tr><td></td><td> BCM56628 B2
</td><td></td></tr><tr><td></td><td> BCM56629 B0      
</td><td> 25 port 1-GbE Multilayer Ethernet Switch with 8 x 10-GbE/HiGig2 Uplink ports and External Table Expansion
</td></tr><tr><td></td><td> BCM56629 B1
</td><td></td></tr><tr><td> BCM56630
</td><td> BCM56630 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56630 B0
</td><td></td></tr><tr><td></td><td> BCM56634 A0
</td><td> 48-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56634 B0
</td><td></td></tr><tr><td></td><td> BCM56636 A0
</td><td> 24-Port GbE + 2-Port 10-GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56636 B0
</td><td></td></tr><tr><td></td><td> BCM56638 A0
</td><td> 4-Port 10-GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56638 B0
</td><td></td></tr><tr><td></td><td> BCM56639 A0
</td><td> 24-Port GbE + 4-Port 10-GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56639 B0
</td><td></td></tr><tr><td> BCM56680
</td><td> BCM56680 A0
</td><td> 25 port 1-GbE/2.5GbE Multilayer Ethernet Switch with 4 x
10-GbE/HiGig2 Uplink ports
</td></tr><tr><td></td><td> BCM56680 A1
</td></tr><tr><td></td><td> BCM56680 B0
</td><td></td></tr><tr><td></td><td> BCM56680 B1
</td><td></td></tr><tr><td></td><td> BCM56684 A0
</td><td> 24 port 1-GbE/2.5GbE Multilayer Ethernet Switch with 4 x
10-GbE/HiGig2 Uplink ports
</td></tr><tr><td></td><td> BCM56684 A1
</td><td></td></tr><tr><td></td><td> BCM56684 B0
</td><td></td></tr><tr><td></td><td> BCM56684 B1
</td><td></td></tr><tr><td> BCM56685
</td><td> BCM56685 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56685 B0
</td><td></td></tr><tr><td></td><td> BCM56689 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56689 B0
</td><td></td></tr><tr><td> BCM56700
</td><td> BCM56700 A0
</td><td> 16-Port, 192-Gbps Lossless Switch Fabric
</td></tr><tr><td></td><td> BCM56701 A0
</td><td> 12-Port, 144-Gbps Lossless Switch Fabric
</td></tr><tr><td> BCM56720
</td><td> BCM56720 A0
</td><td> 16 Port, 16-Gbps HiGig2 Switch Fabric
</td></tr><tr><td></td><td> BCM56721 A0
</td><td> 12 Port, 16-Gbps HiGig2 Switch Fabric
</td></tr><tr><td> BCM56725
</td><td> BCM56725 A0
</td><td> 8 Port, 20-Gbps + 4 Port, 16-Gbps HiGig2 Switch Fabric
</td></tr><tr><td> BCM56740
</td><td> BCM56743 A0
</td><td> 480 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56743 A1
</td><td></td></tr><tr><td></td><td> BCM56743 A2
</td><td></td></tr><tr><td></td><td> BCM56743 A3
</td><td></td></tr><tr><td></td><td> BCM56743 A4
</td><td></td></tr><tr><td></td><td> BCM56743 B0
</td><td></td></tr><tr><td></td><td> BCM56743 B1
</td><td></td></tr><tr><td></td><td> BCM56745 A0
</td><td> 640 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56745 A1
</td><td></td></tr><tr><td></td><td> BCM56745 A2
</td><td></td></tr><tr><td></td><td> BCM56745 A3
</td><td></td></tr><tr><td></td><td> BCM56745 A4
</td><td></td></tr><tr><td></td><td> BCM56745 B0
</td><td></td></tr><tr><td></td><td> BCM56745 B1
</td><td></td></tr><tr><td> <tt>BCM56740_PLUS</tt>
</td><td> BCM56744 A0
</td><td> 480 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56744 A1
</td><td></td></tr><tr><td></td><td> BCM56746 A0
</td><td> 640 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56746 A1
</td><td></td></tr><tr><td> BCM56800
</td><td> BCM56800 A0
</td><td> 20-Port 10-Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56801 A0
</td><td> 10-Port 10-Gigabit Ethernet and 8-Port HiGig2/10GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56802 A0
</td><td> 16-Port 10-GbE/HiGig2 Multilayer Switch
</td></tr><tr><td></td><td> BCM56803 A0
</td><td> 12 Port 10GE/HiGig2 Multilayer Switch
</td></tr><tr><td> BCM56820
</td><td> BCM56820 A0
</td><td> 24 x 10-GbE + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56820 B0
</td><td></td></tr><tr><td></td><td> BCM56821 A0
</td><td> 12 x 10-GbE + 8 x HiGig2 + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56821 B0
</td><td></td></tr><tr><td></td><td> BCM56822 A0
</td><td> 12 x 10-GbE + 4 x 20-Gbps HiGig2 + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56822 B0
</td><td></td></tr><tr><td></td><td> BCM56823 A0
</td><td> 8 x 10-GbE + 4 x 20-Gbps HiGig2 + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56823 B0
</td><td></td></tr><tr><td></td><td> BCM56825 B0
</td><td> 16 x 10-GbE + 8 x 20-Gbps HiGig2 + 1 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td> BCM56740
</td><td> BCM56743 A0
</td><td> 480 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56743 A1
</td><td></td></tr><tr><td></td><td> BCM56743 A2
</td><td></td></tr><tr><td></td><td> BCM56743 A3
</td><td></td></tr><tr><td></td><td> BCM56743 A4
</td><td></td></tr><tr><td></td><td> BCM56743 B0
</td><td></td></tr><tr><td></td><td> BCM56743 B1
</td><td></td></tr><tr><td></td><td> BCM56745 A0
</td><td> 640 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56745 A1
</td><td></td></tr><tr><td></td><td> BCM56745 A2
</td><td></td></tr><tr><td></td><td> BCM56745 A3
</td><td></td></tr><tr><td></td><td> BCM56745 A4
</td><td></td></tr><tr><td></td><td> BCM56745 B0
</td><td></td></tr><tr><td></td><td> BCM56745 B1
</td><td></td></tr><tr><td> <tt>BCM56740_PLUS</tt>
</td><td> BCM56744 A0
</td><td> 480 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56744 A1
</td><td></td></tr><tr><td></td><td> BCM56746 A0
</td><td> 640 Gbps Switch fabric
</td></tr><tr><td></td><td> BCM56746 A1
</td><td></td></tr><tr><td> BCM56840
</td><td> BCM56841 A0
</td><td> 320 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56841 A1
</td><td></td></tr><tr><td></td><td> BCM56841 A2
</td><td></td></tr><tr><td></td><td> BCM56841 A3
</td><td></td></tr><tr><td></td><td> BCM56841 A4
</td><td></td></tr><tr><td></td><td> BCM56841 B0
</td><td></td></tr><tr><td></td><td> BCM56841 B1
</td><td></td></tr><tr><td></td><td> BCM56843 A0
</td><td> 480 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56843 A1
</td><td></td></tr><tr><td></td><td> BCM56843 A2
</td><td></td></tr><tr><td></td><td> BCM56843 A3
</td><td></td></tr><tr><td></td><td> BCM56843 A4
</td><td></td></tr><tr><td></td><td> BCM56843 B0
</td><td></td></tr><tr><td></td><td> BCM56843 B1
</td><td></td></tr><tr><td></td><td> BCM56845 A0
</td><td> 640 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56845 A1
</td><td></td></tr><tr><td></td><td> BCM56845 A2
</td><td></td></tr><tr><td></td><td> BCM56845 A3
</td><td></td></tr><tr><td></td><td> BCM56845 A4
</td><td></td></tr><tr><td></td><td> BCM56845 B0
</td><td></td></tr><tr><td></td><td> BCM56845 B1
</td><td></td></tr><tr><td> <tt>BCM56840_PLUS</tt>
</td><td> BCM56842 A0
</td><td> 320 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56842 A1
</td><td></td></tr><tr><td></td><td> BCM56844 A0
</td><td> 480 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56844 A1
</td><td></td></tr><tr><td></td><td> BCM56846 A0
</td><td> 640 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56846 A1
</td><td></td></tr><tr><td> BCM88020
</td><td> BCM88020 A0
</td><td> XGS Core (XCore/SBX) Fully Programmable Carrier Packet Processor with 24 GbE Ports,
2 10GbE Ports and 2 SPI Interfaces
</td></tr><tr><td></td><td> BCM88020 A1
</td><td></td></tr><tr><td></td><td> BCM88020 A2
</td><td></td></tr><tr><td> BCM88025
</td><td> BCM88025 A0
</td><td> XGS Core (XCore/SBX) Fully Programmable Carrier Packet Processor with 24 GbE Ports, 2 10GbE Ports and 2 SPI Interfaces
</td></tr><tr><td> BCM88130
</td><td> BCM88130 A0
</td><td> XGS Core (XCore/SBX) 630 Gbps Bandwidth Manager and Switching Engine
</td></tr><tr><td></td><td> BCM88130 A1
</td><td></td></tr><tr><td> BME-3200
</td><td> BME-3200 A0
</td><td> XGS Core (XCore/SBX) Fabric Bandwidth Manager with 32 SCI control ports
and up to 40 SFI data ports
</td></tr><tr><td></td><td> BME-3200 B0
</td><td></td></tr><tr><td> QE-2000
</td><td> QE-2000 A1
</td><td> XGS Core (XCore/SBX) Fabric Queueing Engine with 49 SPI 4.2 subports
</td></tr><tr><td></td><td> QE-2000 A2
</td><td></td></tr><tr><td></td><td> QE-2000 A3
</td><td></td></tr><tr><td></td><td> QE-2000 A4
</td><td></td></tr><tr><td>BCM88230
</td><td>BCM88230 A0
</td><td>XGS Core (XCore/SBX) Fabric Queueing Engine with Integrated Traffic Management
with 4 HiGig2 ports, 50Gbps
</td></tr><tr><td></td><td>BCM88230 B0
</td><td></td></tr><tr><td></td><td>BCM88235 A0
</td><td>XGS Core (XCore/SBX) Fabric Queueing Engine with Integrated Traffic Management
with 4 HiGig2 ports, 80Gbps
</td></tr><tr><td></td><td>BCM88235 B0
</td><td></td></tr><tr><td></td><td>BCM88231 A0
</td><td>XGS Core (XCore/SBX) Traffic Manager with 4 HiGig2 ports, 50Gbps
</td></tr><tr><td></td><td>BCM88231 B0
</td><td></td></tr><tr><td></td><td>BCM88236 A0
</td><td>XGS Core (XCore/SBX) Traffic Manager with 4 HiGig2 ports, 80Gbps
</td></tr><tr><td></td><td>BCM88236 B0
</td><td></td></tr><tr><td>BCM56930
</td><td>BCM56931 A0
</td><td>XGS pass-through and standalone Traffic Manager, 4 HiGig2 ports, 50Gbps
</td></tr><tr><td></td><td>BCM56931 B0
</td><td></td></tr><tr><td></td><td>BCM56936 A0
</td><td>XGS pass-through and standalone Traffic Manager, 4 HiGig2 ports, 80Gbps
</td></tr><tr><td></td><td>BCM56936 B0
</td><td></td></tr></tbody></table><p>Warm boot Supported devices
<p>Note: There is no warm boot support for External table expansion in BCM56620 and BCM56630 device family.

<a name=wbsd></a>
<h3>Table 110:   Switch Devices that support Warm boot
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Family</b></td><td><b>  Devices</b></td><td><b> Description
</b></td></tr><tr><td> BCM5675
</td><td> BCM5675 A0
</td><td> 8-Port, 192-Gbps Switch Fabric
</td></tr><tr><td></td><td> BCM5675 A1
</td><td></td></tr><tr><td></td><td> BCM5676 A0
</td><td> 4-Port, 96-Gbps Switch Fabric
</td></tr><tr><td></td><td> BCM5676 A1
</td><td></td></tr><tr><td> BCM56020
</td><td> BCM56024 A0
</td><td> 24-Port Integrated Multilayer Switch and CPU
</td></tr><tr><td></td><td> BCM56024 B0
</td><td></td></tr><tr><td></td><td> BCM56025 A0
</td><td> 24-Port Integrated L2 Switch and CPU
</td></tr><tr><td></td><td> BCM56025 B0
</td><td></td></tr><tr><td></td><td> BCM56026 A0
</td><td> 24-Port Integrated L2 Switch and CPU
</td></tr><tr><td></td><td> BCM56026 B0
</td><td></td></tr><tr><td> BCM56130
</td><td> BCM56132 A0
</td><td> 24-Port Fast Ethernet Multilayer Switch with Two 10-GbE/HiGig2 and
Two 1G/2.5Gb Uplink Ports 
</td></tr><tr><td></td><td> BCM56132 B0
</td><td></td></tr><tr><td></td><td> BCM56134 A0
</td><td> 24-Port Fast Ethernet Multilayer Switch with four 1G/2.5Gb Uplink Ports
</td></tr><tr><td></td><td> BCM56134 B0
</td><td></td></tr><tr><td> BCM56220
</td><td> BCM56224 A0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56224 B0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56225 A0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56225 B0
</td><td> 24 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56226 A0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56226 B0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56227 A0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56227 B0
</td><td> 16 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56228 A0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56228 B0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L3/L2+
</td></tr><tr><td></td><td> BCM56229 A0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td></td><td> BCM56229 B0
</td><td> 8 GbE + 4 x 1 Gb/2.5 Gb, L2+
</td></tr><tr><td> BCM56330
</td><td> BCM56331 A0
</td><td> 24-Port GbE Multilayer Switch with Four 2.5GbE Uplink Ports
</td></tr><tr><td></td><td> BCM56331 B0
</td><td></td></tr><tr><td></td><td> BCM56333 A0
</td><td> 16-Port GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56333 B0
</td><td></td></tr><tr><td></td><td> BCM56334 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56334 B0
</td><td></td></tr><tr><td></td><td> BCM56338 A0
</td><td> 8-Port GbE Multilayer Switch with two 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56338 B0
</td><td></td></tr><tr><td> BCM56500
</td><td> BCM56500 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56500 A1
</td><td></td></tr><tr><td></td><td> BCM56500 B0
</td><td></td></tr><tr><td></td><td> BCM56500 B1
</td><td></td></tr><tr><td></td><td> BCM56500 B2
</td><td></td></tr><tr><td></td><td> BCM56501 A0
</td><td> Four 10-Gigabit Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56501 A1
</td><td></td></tr><tr><td></td><td> BCM56501 B0
</td><td></td></tr><tr><td></td><td> BCM56501 B1
</td><td></td></tr><tr><td></td><td> BCM56501 B2
</td><td></td></tr><tr><td></td><td> BCM56502 A0
</td><td> 24-Port GbE Multilayer Switch with Two 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56502 A1
</td><td></td></tr><tr><td></td><td> BCM56502 B0
</td><td></td></tr><tr><td></td><td> BCM56502 B1
</td><td></td></tr><tr><td></td><td> BCM56502 B2
</td><td></td></tr><tr><td></td><td> BCM56503 A0
</td><td> 24-Port GbE Multilayer Switch with Three 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56503 A1
</td><td></td></tr><tr><td></td><td> BCM56503 B0
</td><td></td></tr><tr><td></td><td> BCM56503 B1
</td><td></td></tr><tr><td></td><td> BCM56503 B2
</td><td></td></tr><tr><td></td><td> BCM56504 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56504 A1
</td><td></td></tr><tr><td></td><td> BCM56504 B0
</td><td></td></tr><tr><td></td><td> BCM56504 B1
</td><td></td></tr><tr><td></td><td> BCM56504 B2
</td><td></td></tr><tr><td></td><td> BCM56505 A0
</td><td> 24-Port GbE Layer 2 Switch
</td></tr><tr><td></td><td> BCM56505 A1
</td><td></td></tr><tr><td></td><td> BCM56505 B0
</td><td></td></tr><tr><td></td><td> BCM56505 B1
</td><td></td></tr><tr><td></td><td> BCM56505 B2
</td><td></td></tr><tr><td></td><td> BCM56506 A0
</td><td> Four 10-Gigabit Ethernet/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56506 A1
</td><td></td></tr><tr><td></td><td> BCM56506 B0
</td><td></td></tr><tr><td></td><td> BCM56506 B1
</td><td></td></tr><tr><td></td><td> BCM56506 B2
</td><td></td></tr><tr><td></td><td> BCM56507 A0
</td><td> 24-Port GbE Layer 2 Switch with Two 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56507 A1
</td><td></td></tr><tr><td></td><td> BCM56507 B0
</td><td></td></tr><tr><td></td><td> BCM56507 B1
</td><td></td></tr><tr><td></td><td> BCM56507 B2
</td><td></td></tr><tr><td></td><td> BCM56508 A0
</td><td> 24-Port GbE Layer 2 Switch with Three 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56508 A1
</td><td></td></tr><tr><td></td><td> BCM56508 B0
</td><td></td></tr><tr><td></td><td> BCM56508 B1
</td><td></td></tr><tr><td></td><td> BCM56508 B2
</td><td></td></tr><tr><td></td><td> BCM56509 A0
</td><td> 24-Port GbE Layer 2 Switch with Four 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56509 A1
</td><td></td></tr><tr><td></td><td> BCM56509 B0
</td><td></td></tr><tr><td></td><td> BCM56509 B1
</td><td></td></tr><tr><td></td><td> BCM56509 B2
</td><td></td></tr><tr><td> BCM56510
</td><td> BCM56510 A0
</td><td> 24-Port Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56511 A0
</td><td> Four-Port 10-GbE/HiGig+ Multilayer Switch
</td></tr><tr><td></td><td> BCM56512 A0
</td><td> 24-Port GbE Multilayer Switch With Two 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56513 A0
</td><td> 24-Port GbE Multilayer Switch With Three 10-GbE/HiGig+ Ports
</td></tr><tr><td></td><td> BCM56514 A0
</td><td> 24-Port GbE Multilayer Switch With Four 10-GbE/HiGig+ Ports
</td></tr><tr><td> BCM56520
</td><td> BCM56520 A0
</td><td> 24-Port GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56520 B0
</td><td></td></tr><tr><td></td><td> BCM56522 A0
</td><td> 24-Port GbE Multilayer Switch with Two 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56522 B0
</td><td></td></tr><tr><td></td><td> BCM56524 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56524 B0
</td><td></td></tr><tr><td></td><td> BCM56526 A0
</td><td> 28-Port GbE Multilayer Switch with Six 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56526 B0
</td><td></td></tr><tr><td> BCM56530
</td><td> BCM56534 B0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56538 B0
</td><td> 48-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td> BCM56620
</td><td> BCM56620 A0
</td><td></td></tr><tr><td></td><td> BCM56620 A1
</td><td></td></tr><tr><td></td><td> BCM56620 B0
</td><td></td></tr><tr><td></td><td> BCM56620 B1
</td><td></td></tr><tr><td></td><td> BCM56624 A0
</td><td> 49 port 1-GbE Multilayer Ethernet Switch with 4 x 10-GbE/HiGig2
Uplink ports and External Table Expansion
</td></tr><tr><td></td><td> BCM56624 A1
</td><td></td></tr><tr><td></td><td> BCM56624 B0
</td><td></td></tr><tr><td></td><td> BCM56624 B1
</td><td></td></tr><tr><td></td><td> BCM56624 B2
</td><td></td></tr><tr><td></td><td> BCM56626 A0
</td><td> 25 port 1-GbE Multilayer Ethernet Switch with 6 x 10-GbE/HiGig2 Uplink ports and External Table Expansion
</td></tr><tr><td></td><td> BCM56626 A1
</td><td></td></tr><tr><td></td><td> BCM56626 B0
</td><td></td></tr><tr><td></td><td> BCM56626 B1
</td><td></td></tr><tr><td></td><td> BCM56626 B2
</td><td></td></tr><tr><td></td><td> BCM56628 A0
</td><td> 8 port 10-GbE/HiGig2 Multilayer Ethernet Switch with External Table Expansion
</td></tr><tr><td></td><td> BCM56628 A1
</td><td></td></tr><tr><td></td><td> BCM56628 B0
</td><td></td></tr><tr><td></td><td> BCM56628 B1
</td><td></td></tr><tr><td></td><td> BCM56628 B2
</td><td></td></tr><tr><td></td><td> BCM56629 B0      
</td><td> 25 port 1-GbE Multilayer Ethernet Switch with 8 x 10-GbE/HiGig2 Uplink ports and External Table Expansion
</td></tr><tr><td></td><td> BCM56629 B1
</td><td></td></tr><tr><td> BCM56630
</td><td> BCM56630 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56630 B0
</td><td></td></tr><tr><td></td><td> BCM56634 A0
</td><td> 48-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56634 B0
</td><td></td></tr><tr><td></td><td> BCM56636 A0
</td><td> 24-Port GbE + 2-Port 10-GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56636 B0
</td><td></td></tr><tr><td></td><td> BCM56638 A0
</td><td> 4-Port 10-GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56638 B0
</td><td></td></tr><tr><td></td><td> BCM56639 A0
</td><td> 24-Port GbE + 4-Port 10-GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56639 B0
</td><td></td></tr><tr><td> BCM56680
</td><td> BCM56680 A0
</td><td> 25 port 1-GbE/2.5GbE Multilayer Ethernet Switch with 4 x
10-GbE/HiGig2 Uplink ports
</td></tr><tr><td></td><td> BCM56680 A1
</td></tr><tr><td></td><td> BCM56680 B0
</td><td></td></tr><tr><td></td><td> BCM56680 B1
</td><td></td></tr><tr><td></td><td> BCM56684 A0
</td><td> 24 port 1-GbE/2.5GbE Multilayer Ethernet Switch with 4 x
10-GbE/HiGig2 Uplink ports
</td></tr><tr><td></td><td> BCM56684 A1
</td><td></td></tr><tr><td></td><td> BCM56684 B0
</td><td></td></tr><tr><td></td><td> BCM56684 B1
</td><td></td></tr><tr><td> BCM56685
</td><td> BCM56685 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56685 B0
</td><td></td></tr><tr><td></td><td> BCM56689 A0
</td><td> 24-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports
</td></tr><tr><td></td><td> BCM56689 B0
</td><td></td></tr><tr><td> BCM56700
</td><td> BCM56700 A0
</td><td> 16-Port, 192-Gbps Lossless Switch Fabric
</td></tr><tr><td></td><td> BCM56701 A0
</td><td> 12-Port, 144-Gbps Lossless Switch Fabric
</td></tr><tr><td> BCM56720
</td><td> BCM56720 A0
</td><td> 16 Port, 16-Gbps HiGig2 Switch Fabric
</td></tr><tr><td></td><td> BCM56721 A0
</td><td> 12 Port, 16-Gbps HiGig2 Switch Fabric
</td></tr><tr><td> BCM56725
</td><td> BCM56725 A0
</td><td> 8 Port, 20-Gbps + 4 Port, 16-Gbps HiGig2 Switch Fabric
</td></tr><tr><td> BCM56800
</td><td> BCM56800 A0
</td><td> 20-Port 10-Gigabit Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56801 A0
</td><td> 10-Port 10-Gigabit Ethernet and 8-Port HiGig2/10GbE Multilayer Switch
</td></tr><tr><td></td><td> BCM56802 A0
</td><td> 16-Port 10-GbE/HiGig2 Multilayer Switch
</td></tr><tr><td></td><td> BCM56803 A0
</td><td> 12 Port 10GE/HiGig2 Multilayer Switch
</td></tr><tr><td> BCM56820
</td><td> BCM56820 A0
</td><td> 24 x 10-GbE + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56820 B0
</td><td></td></tr><tr><td></td><td> BCM56821 A0
</td><td> 12 x 10-GbE + 8 x HiGig2 + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56821 B0
</td><td></td></tr><tr><td></td><td> BCM56822 A0
</td><td> 12 x 10-GbE + 4 x 20-Gbps HiGig2 + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56822 B0
</td><td></td></tr><tr><td></td><td> BCM56823 A0
</td><td> 8 x 10-GbE + 4 x 20-Gbps HiGig2 + 4 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td></td><td> BCM56823 B0
</td><td></td></tr><tr><td></td><td> BCM56825 B0
</td><td> 16 x 10-GbE + 8 x 20-Gbps HiGig2 + 1 x 1-GbE Multilayer Ethernet Switch
</td></tr><tr><td> BCM56840
</td><td> BCM56841 A0
</td><td> 320 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56841 A1
</td><td></td></tr><tr><td></td><td> BCM56841 A2
</td><td></td></tr><tr><td></td><td> BCM56841 A3
</td><td></td></tr><tr><td></td><td> BCM56841 A4
</td><td></td></tr><tr><td></td><td> BCM56841 B0
</td><td></td></tr><tr><td></td><td> BCM56841 B1
</td><td></td></tr><tr><td></td><td> BCM56843 A0
</td><td> 480 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56843 A1
</td><td></td></tr><tr><td></td><td> BCM56843 A2
</td><td></td></tr><tr><td></td><td> BCM56843 A3
</td><td></td></tr><tr><td></td><td> BCM56843 A4
</td><td></td></tr><tr><td></td><td> BCM56843 B0
</td><td></td></tr><tr><td></td><td> BCM56843 B1
</td><td></td></tr><tr><td></td><td> BCM56845 A0
</td><td> 640 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56845 A1
</td><td></td></tr><tr><td></td><td> BCM56845 A2
</td><td></td></tr><tr><td></td><td> BCM56845 A3
</td><td></td></tr><tr><td></td><td> BCM56845 A4
</td><td></td></tr><tr><td></td><td> BCM56845 B0
</td><td></td></tr><tr><td></td><td> BCM56845 B1
</td><td></td></tr><tr><td> <tt>BCM56840_PLUS</tt>
</td><td> BCM56842 A0
</td><td> 320 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56842 A1
</td><td></td></tr><tr><td></td><td> BCM56844 A0
</td><td> 480 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56844 A1
</td><td></td></tr><tr><td></td><td> BCM56846 A0
</td><td> 640 Gbps Ethernet Multilayer Switch
</td></tr><tr><td></td><td> BCM56846 A1
</td><td></td></tr></tbody></table><h3>Table 111:   Switch Device Codenames
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Product Family</b></td><td>  Architecture</td><td> Codename
</td></tr><tr><td>  BCM5650</td><td>  StrataXGS</td><td> -
</td></tr><tr><td>  BCM5665</td><td>  StrataXGS</td><td> -
</td></tr><tr><td>  BCM5670</td><td>  StrataXGS</td><td> -
</td></tr><tr><td>  BCM5673</td><td>  StrataXGS</td><td> -
</td></tr><tr><td>  BCM5674</td><td>  StrataXGS II</td><td> -
</td></tr><tr><td>  BCM5675</td><td>  StrataXGS II</td><td> -
</td></tr><tr><td>  BCM5690</td><td>  StrataXGS</td><td> -
</td></tr><tr><td>  BCM5695</td><td>  StrataXGS II</td><td> -
</td></tr><tr><td>  BCM53310</td><td>  StrataXGS III</td><td> Hawkeye
</td></tr><tr><td>  BCM53710</td><td>  StrataXGS III</td><td> Raptor
</td></tr><tr><td>  BCM53720</td><td>  StrataXGS III</td><td> Raven
</td></tr><tr><td>  BCM56010</td><td>  StrataXGS III</td><td> Raptor
</td></tr><tr><td>  BCM56020</td><td>  StrataXGS III</td><td> Tropicana
</td></tr><tr><td>  BCM56100</td><td>  StrataXGS III</td><td> Felix
</td></tr><tr><td>  BCM56110</td><td>  StrataXGS III</td><td> Felix+
</td></tr><tr><td>  BCM56140</td><td>  StrataXGS IV</td><td> Hurricane
</td></tr><tr><td>  BCM56210</td><td>  StrataXGS III</td><td> Raptor
</td></tr><tr><td>  BCM56220</td><td>  StrataXGS III</td><td> Raven
</td></tr><tr><td>  BCM56300</td><td>  StrataXGS III</td><td> Helix
</td></tr><tr><td>  BCM56310</td><td>  StrataXGS III</td><td> Helix+
</td></tr><tr><td>  BCM56320</td><td>  StrataXGS IV</td><td> Helix3
</td></tr><tr><td>  BCM56330</td><td>  StrataXGS IV</td><td> Enduro
</td></tr><tr><td>  BCM56130</td><td>  StrataXGS IV</td><td> Stardust
</td></tr><tr><td>  BCM56440</td><td>  StrataXGS IV</td><td> Katana
</td></tr><tr><td>  BCM56500</td><td>  StrataXGS III</td><td> Firebolt
</td></tr><tr><td>  BCM56510</td><td>  StrataXGS III</td><td> Firebolt2
</td></tr><tr><td>  BCM56520</td><td>  StrataXGS IV</td><td> Apollo
</td></tr><tr><td>  BCM56530</td><td>  StrataXGS IV</td><td> Firebolt3
</td></tr><tr><td>  BCM56580</td><td>  StrataXGS III</td><td> Goldwing
</td></tr><tr><td>  BCM56600</td><td>  StrataXGS III</td><td> Easyrider
</td></tr><tr><td>  BCM56620</td><td>  StrataXGS IV</td><td> Triumph
</td></tr><tr><td>  BCM56629</td><td>  StrataXGS IV</td><td> Triumph
</td></tr><tr><td>  BCM56630</td><td>  StrataXGS IV</td><td> Triumph2
</td></tr><tr><td>  BCM56680</td><td>  StrataXGS IV</td><td> Valkyrie
</td></tr><tr><td>  BCM56685</td><td>  StrataXGS IV</td><td> Valkyrie2
</td></tr><tr><td>  BCM56700</td><td>  StrataXGS III</td><td> Humv
</td></tr><tr><td>  BCM56720</td><td>  StrataXGS IV</td><td> HUMV+
</td></tr><tr><td>  BCM56725</td><td>  StrataXGS IV</td><td> Conqueror
</td></tr><tr><td>  BCM56740</td><td>  StrataXGS IV</td><td> Titan
</td></tr><tr><td>  BCM56744</td><td>  StrataXGS IV</td><td> Titan+
</td></tr><tr><td>  BCM56800</td><td>  StrataXGS IV</td><td> Bradley
</td></tr><tr><td>  BCM56820</td><td>  StrataXGS IV</td><td> Scorpion
</td></tr><tr><td>  BCM56825</td><td>  StrataXGS IV</td><td> Sco320G
</td></tr><tr><td>  BCM56840</td><td>  StrataXGS IV</td><td> Trident
</td></tr><tr><td>  <tt>BCM56840_PLUS</tt></td><td>  StrataXGS IV</td><td> Trident+
</td></tr><tr><td>  BCM88020</td><td>  XGS Core</td><td> Caladan FE-2000
</td></tr><tr><td>  BCM88025</td><td>  XGS Core</td><td> Caladan2
</td></tr><tr><td>  BCM88130</td><td>  XGS Core</td><td> Polaris
</td></tr><tr><td>  BCM88230</td><td>  XGS Core</td><td> Sirius
</td></tr><tr><td>  BCM88235</td><td>  XGS Core</td><td> Sirius+
</td></tr><tr><td>  BCM88231</td><td>  XGS Core</td><td> Sirius TM
</td></tr><tr><td>  BCM88236</td><td>  XGS Core</td><td> Sirius+ TM
</td></tr><tr><td>  BCM56931</td><td>  XGS Core</td><td> Sportster
</td></tr><tr><td>  BCM56936</td><td>  XGS Core</td><td> Sportster+
</td></tr><tr><td>  BCM53101</td><td>  ROBO</td><td> Lotus
</td></tr><tr><td>  BCM53115</td><td>  ROBO</td><td> Vulcan
</td></tr><tr><td>  BCM53118</td><td>  ROBO</td><td> Blackbird
</td></tr><tr><td>  BCM53125</td><td>  ROBO</td><td> Starfighter
</td></tr><tr><td>  BCM53128</td><td>  ROBO</td><td> Blackbird2
</td></tr><tr><td>  BCM53242</td><td>  ROBO</td><td> Harrier
</td></tr><tr><td>  BCM53280</td><td>  ROBO</td><td> Thunderbolt
</td></tr><tr><td>  BCM53600</td><td>  ROBO</td><td> Voyager
</td></tr></tbody></table><p><br><hr noshade><a name="phys"></a>
<h3>Section 7.2:   PHYs
</h3>
<p><h3>Table 112:   PHYs
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Device</b></td><td><b>  Driver Family</b></td><td><b> Description
</b></td></tr><tr><td> BCM5218
</td><td> 522x
</td><td> 10/100Base-TX/FX Octal-PHY(tm) Transceiver
</td></tr><tr><td> BCM5220
</td><td> 522x
</td><td> 10/100BASE-TX/FX Mini-F(tm) Transceiver
</td></tr><tr><td> BCM5221
</td><td> 522x
</td><td> 10/100BASE-TX/FX Mini-F(tm) Transceiver
</td></tr><tr><td> BCM5226
</td><td> 522x
</td><td> 10/100 BASE- TX/FX Hex-PHY(tm) Transceiver
</td></tr><tr><td> BCM5228
</td><td> 522x
</td><td> 10/100BASE-TX/FX Octal-F(tm) Transceiver
</td></tr><tr><td> BCM5238
</td><td> 522x
</td><td> 10/100BASE-TX OCTAL-f(tm) Transceiver
</td></tr><tr><td> BCM5248
</td><td> 522x
</td><td> 10/100BASE-TX Octal-F(tm) Transceiver
</td></tr><tr><td> BCM52681E A1
</td><td> 54680
</td><td> Octal 10/100 Ethernet Transceiver
</td></tr><tr><td> BCM5401
</td><td> 5401
</td><td> 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5402
</td><td> 5402
</td><td> 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5404
</td><td> 5404
</td><td> Quad-Port 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5424
</td><td> 5424
</td><td> Quad 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> BCM5434
</td><td> 5424
</td><td> Quad 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> BCM5411
</td><td> 5411
</td><td> 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5421
</td><td> 5421S
</td><td> 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5421S
</td><td> 5421S
</td><td> 10/100/1000BASE-T Gigabit Copper Transceiver with SerDes
</td></tr><tr><td> BCM5461
</td><td> 5464
</td><td> 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> BCM5464
</td><td> 5464
</td><td> Quad-Port 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5464R
</td><td> 5464
</td><td> Quad-Port 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5464S
</td><td> 5464
</td><td> Quad-Port Gigabit Copper Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> BCM5464SR
</td><td> 5464
</td><td> Quad-Port Gigabit Copper Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> BCM5466
</td><td> 5464
</td><td> Quad-Port 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5466R
</td><td> 5464
</td><td> Quad-Port 10/100/1000BASE-T Gigabit Copper Transceiver
</td></tr><tr><td> BCM5466S
</td><td> 5464
</td><td> Quad-Port Gigabit Copper Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> BCM5466SR
</td><td> 5464
</td><td> Quad-Port Gigabit Copper Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> BCM5482
</td><td> 5482
</td><td> Dual-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> BCM5488
</td><td> 5464
</td><td> Octal 1000/100/10BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54540_A0</tt>
</td><td> 54580
</td><td> Quad 1000/100/10BASE-T Gigabit Ethernet Transceiver (Needs additional software component)
</td></tr><tr><td> <tt>BCM54580_A0</tt>
</td><td> 54580
</td><td> Octal 1000/100/10BASE-T Gigabit Ethernet Transceiver (Needs additional software component)
</td></tr><tr><td> <tt>BCM54584_A0</tt>
</td><td> 54580
</td><td> Octal 1000/100/10BASE-T Gigabit Ethernet Transceiver (Needs additional software component)
</td></tr><tr><td> <tt>BCM54616_A0</tt>
</td><td> 54616
</td><td> Single-Chip 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> BCM54640 
</td><td> 54640
</td><td> Quad-Port Gigabit Copper Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> <tt>BCM54640E_A1</tt>
</td><td> 54640
</td><td> Quad-Port Gigabit Copper Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> BCM54640E B0
</td><td> 54640
</td><td> Quad-Port Gigabit Copper Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> <tt>BCM54680_A0</tt>
</td><td> 54680
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54680E_A1</tt>
</td><td> 54680
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54680E_B0</tt>
</td><td> 54680
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54682E_A1</tt>
</td><td> 54682
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver with 2 Copper/Fiber Media Interface
</td></tr><tr><td> <tt>BCM54682E_B0</tt>
</td><td> 54682
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver with 2 Copper/Fiber Media Interface
</td></tr><tr><td> <tt>BCM54684_D0</tt>
</td><td> 54684
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> BCM54684E B0
</td><td> 54682
</td><td> 10/100/1000 Octal (65nm) QSGMII-Copper/Fiber(2) with EEE
</td></tr><tr><td> BCM54685
</td><td> 54682
</td><td> Octal QSGMII to 10/100/1000BaseT or Fiber Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54685E_A1</tt>
</td><td> 54682
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver with Copper/Fiber Media Interface
</td></tr><tr><td> <tt>BCM54810_A0</tt>
</td><td> 54880
</td><td> BroadR-Reach Single-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54880_A0</tt>
</td><td> 54880
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver with BroadR-Reach support
</td></tr><tr><td> <tt>BCM54880_B0</tt>
</td><td> 54880
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver with BroadR-Reach support
</td></tr><tr><td> <tt>BCM54880E_A1</tt>
</td><td> 54680
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54880E_B0</tt>
</td><td> 54680
</td><td> Octal-Port 10/100/1000BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54881_B0</tt>
</td><td> 54880
</td><td> Octal 10/100Base/Tx Ethernet BroadReach Transceiver
</td></tr><tr><td> <tt>BCM54980_B2</tt>
</td><td> 54980
</td><td> Octal 1000/100/10BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54980_C0</tt>
</td><td> 54980
</td><td> Octal 1000/100/10BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM54980_C1</tt>
</td><td> 54980
</td><td> Octal 1000/100/10BASE-T Gigabit Ethernet Transceiver
</td></tr><tr><td> <tt>BCM8040_A2</tt>
</td><td> 8040
</td><td> Eight-Channel Multirate 1-Gbps - 3.2-Gbps Retimer/Switch
</td></tr><tr><td> <tt>BCM8073_A0</tt>
</td><td> 8072
</td><td> Dual-Channel Serial 10-GbE BASE-KR to XAUI Transceiver. Firmware version d502.
</td></tr><tr><td> <tt>BCM8074_A0</tt>
</td><td> 8072
</td><td> Quad-Channel Serial 10-GbE BASE-KR to XAUI Transceiver. Firmware version 010C.
</td></tr><tr><td> BCM8704
</td><td> 8703
</td><td> Serial 10-Gigabit Ethernet/Fibre Channel Transceiver with XAUI Interface
</td></tr><tr><td> BCM8705
</td><td> 8705
</td><td> Serial 10-Gigabit Ethernet/Fibre Channel Transceiver with WIS Layer and XAUI Interface
</td></tr><tr><td> BCM8725
</td><td> 8705
</td><td> Dual Serial 10-Gigabit Ethernet/Fibre Channel Transceiver with WIS Layer and XAUI
Interface
</td></tr><tr><td> <tt>BCM8726_A0</tt>
</td><td> 8706
</td><td> Dual Serial 10-Gigabit Ethernet/Fibre Channel Transceiver with XAUI Interface
</td></tr><tr><td> <tt>BCM8726_B1</tt>
</td><td> 8706
</td><td> Dual Serial 10-Gigabit Ethernet/Fibre Channel Transceiver with XAUI(TM) Interface. Firmware version 0x0127
</td></tr><tr><td> <tt>BCM8727_B0</tt>
</td><td> 8706
</td><td> Dual Serial 10-Gigabit Ethernet/Fibre Channel Transceiver with XAUI Interface. Firmware version 0406.
</td></tr><tr><td> <tt>BCM8727_C0</tt>
</td><td> 8706
</td><td> Dual Serial 10-Gigabit Ethernet/Fibre Channel Transceiver with XAUI Interface. Firmware version 050D.
</td></tr><tr><td> <tt>BCM8728_A0</tt>
</td><td> 8706
</td><td> Dual-Channel 10-GbE SFI-to-XAUI(TM) Transceiver with EDC. Firmware version 0511. (Preview)
</td></tr><tr><td> BCM8742
</td><td> 8706
</td><td> Quad-Channel 10-GbE SFI-to-XAUI(TM) Transceiver. Firmware version 0511.
</td></tr><tr><td> <tt>BCM8747_A0</tt>
</td><td> 8706
</td><td> Quad-Channel 10-GbE SFI-to-XAUI(TM) Transceiver with EDC. Firmware version 0511.
</td></tr><tr><td> <tt>BCM8750_A0</tt>
</td><td> 8750
</td><td> Dual-Channel 10 GbE SFI-to-XFI PHY with EDC
</td></tr><tr><td> <tt>BCM8752_A0</tt>
</td><td> 8750
</td><td> Dual-Channel 10 GbE SFI-to-XFI PHY with EDC
</td></tr><tr><td> <tt>BCM8754_A0</tt>
</td><td> 8750
</td><td> Quad-Channel 10 GbE SFI-to-XFI PHY with EDC. Firmware version 0411.
</td></tr><tr><td> <tt>BCM8481_B0</tt>
</td><td> 8481
</td><td> 10GBASE-T Transceiver (Firmware version B0 02.10)
</td></tr><tr><td> <tt>BCM8481_C0</tt>
</td><td> 8481
</td><td> 10GBASE-T Transceiver (Firmware version C0 02.13)
</td></tr><tr><td> <tt>BCM84812_A0</tt>
</td><td> 8481
</td><td> Dual 10GBASE-T Transceiver. Firmware version 2.13
</td></tr><tr><td> <tt>BCM84821_A0</tt>
</td><td> 8481
</td><td> 10GBASE-T Transceiver. Firmware version 2.13 (Preview)
</td></tr><tr><td> <tt>BCM84822_A0</tt>
</td><td> 8481
</td><td> Dual 10GBASE-T Transceiver. Firmware version 3.02
</td></tr><tr><td> <tt>BCM84823_A0</tt>
</td><td> 8481
</td><td> Dual 10GBASE-T Transceiver. Firmware version 3.02
</td></tr><tr><td> <tt>BCM84823_B0</tt>
</td><td> 8481
</td><td> Dual 10GBASE-T Transceiver. Firmware version 4.02
</td></tr><tr><td> <tt>BCM84823_B1</tt>
</td><td> 8481
</td><td> Dual 10GBASE-T Transceiver. Firmware version 4.02
</td></tr><tr><td> <tt>BCM84833_B0</tt>
</td><td> 8481
</td><td> Dual 10GBASE-T Transceiver. Firmware version 1.17 (Preview)
</td></tr><tr><td> BCM84740 A0
</td><td> 84740
</td><td> 40 GbE PPI-to-XLAUI PHY with EDC. Firmware version D102.
</td></tr><tr><td> BCM84753 A0
</td><td> 84740
</td><td> Quad-Channel 10 GbE SFI-to-XFI PHY with EDC. Firmware version D102.
</td></tr><tr><td> BCM84754 A0
</td><td> 84740
</td><td> Quad-Channel 10 GbE SFI-to-XFI PHY with EDC. Firmware version D102.
</td></tr><tr><td> BCM84064 A0
</td><td> 84740
</td><td> Quad 10G-KR-to-XFI or 40G-KR4-to-XLAUI Transceiver. Firmware version D102.
</td></tr></tbody></table><p><br><hr noshade><a name="os"></a>
<h3>Section 7.3:   Operating Systems
</h3>
<p>The SDK provides the SAL and BDE abstraction implementations
necessary for running the SDK on the following operating systems.
See the Platform Guide (56XX-PG810-R) for 
instructions on porting the SDK to another platform. 
<p><h3>Table 113:   Operating Systems
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b> Operating System
</b></td></tr><tr><td> VxWorks 5.5
</td></tr><tr><td> VxWorks 6.2
</td></tr><tr><td> VxWorks 6.4
</td></tr><tr><td> VxWorks 6.5
</td></tr><tr><td> VxWorks 6.6
</td></tr><tr><td> Linux 2.4.20 User Mode
</td></tr><tr><td> Linux 2.4.20 Kernel Resident Mode
</td></tr><tr><td> Linux 2.6.14 User Mode
</td></tr><tr><td> Linux 2.6.14 Kernel Resident Mode
</td></tr><tr><td> Linux 2.6.21 User Mode
</td></tr><tr><td> Linux 2.6.21 Kernel Resident Mode
</td></tr><tr><td> Linux 2.6.25 User Mode
</td></tr><tr><td> Linux 2.6.25 Kernel Resident Mode
</td></tr><tr><td> Linux 2.6.27 User Mode
</td></tr><tr><td> Linux 2.6.27 Kernel Resident Mode
</td></tr><tr><td> POSIX Compliant (SAL ONLY)
</td></tr></tbody></table><p><br><hr noshade><a name="cpu"></a>
<h3>Section 7.4:   CPU Subsystems
</h3>
<p><h3>Table 114:   CPU Subsystems
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  CPU Subsystem</b></td><td><b> Description
</b></td></tr><tr><td> BCM95836
</td><td> CPCI 32-bit MIPS with BCM5836 Processor
</td></tr><tr><td> BCM98245
</td><td> CPCI 32-bit PPC with Motorola 8245 Processor
</td></tr><tr><td> BCM91125
</td><td> CPCI 32/64-bit MIPS with BCM1125 SiByte Processor
</td></tr><tr><td> BCM98548XMC
</td><td> XMC 32-bit PPC with Freescale 8548 Processor
</td></tr><tr><td> BCM953003C
</td><td> XMC 32-bit MIPS with BCM53003 Processor
</td></tr><tr><td> BCM5621X
</td><td> Integrated MIPS CPU on BCM5621X Switch Devices
</td></tr><tr><td> BCM5622X
</td><td> Integrated MIPS CPU on BCM5622X Switch Devices
</td></tr><tr><td> BCM5331X
</td><td> Integrated MIPS CPU on BCM5331X Switch Devices
</td></tr></tbody></table><p><br><hr noshade><a name="combinations"></a>
<h3>Section 7.5:   CPU and Operating System Combinations
</h3>
<p>The following CPU and Operating System combinations are supported
by the SDK (in addition to the above):
<p><h3>Table 115:   CPU and Operating System Combinations
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  CPU Subsystem</b></td><td><b>  Operating System</b></td><td><b> Description
</b></td></tr><tr><td> BCM95836
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM95836
</td><td> Linux 2.4.20
</td><td> Available through MontaVista 3.1 Preview kit
</td></tr><tr><td> BCM95836
</td><td> Linux 2.6.14
</td><td> Available through Windriver Linux 1.5
</td></tr><tr><td> BCM95836
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM98245
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM98245
</td><td> VxWorks 6.2
</td><td> BSP Provided
</td></tr><tr><td> BCM98245
</td><td> Linux 2.4.20
</td><td> Available through MontaVista 3.1 Preview kit
</td></tr><tr><td> BCM98245
</td><td> Linux 2.6.14
</td><td> Available through WindRiver Linux 1.4/1.5
</td></tr><tr><td> BCM98245
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM91125
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM91125
</td><td> VxWorks 6.2
</td><td> BSP Provided
</td></tr><tr><td> BCM91125
</td><td> VxWorks 6.4
</td><td> BSP Provided
</td></tr><tr><td> BCM91125
</td><td> Linux 2.4.20
</td><td> Available through MontaVista 3.1 Preview kit
</td></tr><tr><td> BCM91125
</td><td> Linux 2.6.10
</td><td> Available through MontaVista 4.0 Professional
</td></tr><tr><td> BCM91125
</td><td> Linux 2.6.14
</td><td> Available through WindRiver Linux 1.5
</td></tr><tr><td> BCM91125
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM5621X
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM5621X
</td><td> VxWorks 6.4
</td><td> BSP Provided
</td></tr><tr><td> BCM5621X
</td><td> Linux 2.6.14
</td><td> Available through WindRiver Linux 1.5 <tt>bcm_ntswics</tt>
</td></tr><tr><td> BCM5621X
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0 <tt>bcm_ntswics</tt>
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM5331X
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM5331X
</td><td> VxWorks 6.4
</td><td> BSP Provided
</td></tr><tr><td> BCM5331X
</td><td> Linux 2.6.14
</td><td> Available through WindRiver Linux 1.5 <tt>bcm_ntswics</tt>
</td></tr><tr><td> BCM5331X
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0 <tt>bcm_ntswics</tt>
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM98548XMC
</td><td> VxWorks 6.4
</td><td> BSP Provided
</td></tr><tr><td> BCM98548XMC
</td><td> VxWorks 6.5
</td><td> BSP Provided
</td></tr><tr><td> BCM98548XMC
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0
</td></tr><tr><td> BCM98548XMC
</td><td> Linux 2.6.27
</td><td> Available through WindRiver Linux 3.0. Note: Additional patches for issues WIND00172598 and WIND00161649 are required. Contact your WindRiver support personnel for these patches and other WindRiver information.
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM5300X
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM5300X
</td><td> VxWorks 6.6
</td><td> BSP Provided
</td></tr><tr><td> BCM5300X
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0
</td></tr><tr><td> BCM5300X
</td><td> Linux 2.6.27
</td><td> Available through WindRiver Linux 3.x
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> BCM5360X
</td><td> VxWorks 5.5
</td><td> BSP Provided
</td></tr><tr><td> BCM5360X
</td><td> VxWorks 6.6
</td><td> BSP Provided
</td></tr><tr><td> BCM5360X
</td><td> Linux 2.6.21
</td><td> Available through WindRiver Linux 2.0
</td></tr><tr><td> BCM5360X
</td><td> Linux 2.6.27
</td><td> Available through WindRiver Linux 3.x
</td></tr><tr><td></td><td></td><td></td></tr><tr><td> Generic X86
</td><td> Linux 2.6.25/2.6.27
</td><td></td></tr></tbody></table><p><br><hr noshade><a name="refdesigns"></a>
<h3>Section 7.6:   Reference Designs
</h3>
<p>The following Switch Reference Designs are available from Broadcom
and are supported in the SDK.
<p><h3>Table 116:   Reference Designs
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b>  Platform</b></td><td><b> Description
</b></td></tr><tr><td> BCM95324R24GM 
</td><td> 24-port FE + 2-port GE 5324 SW Ref. Design
</td></tr><tr><td> BCM95347R24M
</td><td> 24-port FE + 4 GE 5347 - 5836 CPU Managed Switch Ref. Design
</td></tr><tr><td> BCM95348R48M
</td><td> 48-port FE + 4 GE 5348 - 5836 CPU Managed Switch Ref. Design
</td></tr><tr><td> BCM95395R5GM
</td><td> 5-port GE 5395 Switch Ref Design - Managed (BCM5836)
</td></tr><tr><td> BCM95396R16GM
</td><td> 16-port GE + 1-port FE(SFP) 5396 Switch Ref Design - Managed (BCM5836)
</td></tr><tr><td> BCM953001R24M
</td><td> 24-port FE + 2-port GE 53242 SW Ref. Design with BCM53001 Processor
</td></tr><tr><td> BCM953115R5GM 
</td><td> 5-port GE + 1-port serdes 53115 Ref. Design
</td></tr><tr><td> BCM953125RM 
</td><td> 5-port GE 53125 Ref. Design
</td></tr><tr><td> BCM95324R24GM 
</td><td> 24-port FE + 2-port GE 5324 SW Ref. Design
</td></tr><tr><td> BCM953242R24M
</td><td> 24-port FE + 2-port GE 53242 SW Ref. Design
</td></tr><tr><td> BCM953262R24M
</td><td> 24-port FE + 4-port GE 53262 SW Ref. Design
</td></tr><tr><td> BCM953284R
</td><td> 24-port FE + 2-port GE 53284 SW Ref. Design
</td></tr><tr><td> BCM953284MDU
</td><td> 24-port FE 53284 SW Ref. Design with TK3715 EPON ONU MAC/Serdes
</td></tr><tr><td> BCM953286R
</td><td> 24-port FE + 4-port GE 53286 SW Ref. Design
</td></tr><tr><td> BCM953300
</td><td> 24-port GE 53300 Switch Ref Design
</td></tr><tr><td> BCM953302
</td><td> 48-port GE 53302 Switch Ref Design
</td></tr><tr><td> BCM953314K
</td><td> 24-port GE - 53314 System Verification Kit
</td></tr><tr><td> BCM953314R24GS
</td><td> 24-port GE - 53314 Switch Ref Design
</td></tr><tr><td> BCM953604R
</td><td> 24-port FE + 1-port 1/2G EPON ONU MAC/SerDes Reference Design
</td></tr><tr><td> BCM956018K48T 
</td><td> 48-port FE + 2-port GE + 2-port HGL(CAT 7) - 56018 SVK
</td></tr><tr><td> BCM956024K24T 
</td><td> 24-port FE + 4-port HGL(CAT 7) - 56024 SVK
</td></tr><tr><td> BCM956102R48XS
</td><td> 48-port FE + 4 port GE 56102 SW Ref Design w/2-HiGig/10GE
</td></tr><tr><td> BCM956112R48XS-02
</td><td> 48-port FE + 4 port GE 56112 SW Ref Design w/2-HiGig/10GE - PPC8245
</td></tr><tr><td> BCM956132K
</td><td> 24-port FE 56132 SW SVK Design w/ two 10GE/HiGig2 and two 1G/2.5Gb Uplink Ports
</td></tr><tr><td> BCM956214R26T
</td><td> 26-port GE (2 TX/SX) + 2-port HGL(CAT 7) - 56214 Reference Design
</td></tr><tr><td> BCM956219K50T
</td><td> 50-port GE + 2-port HGL(CAT 7) - 56218 - PPC8245 SVK
</td></tr><tr><td> BCM956218K50T
</td><td> 50-port GE + 2-port HGL(CAT 7) - 56218 System Verification Kit
</td></tr><tr><td> BCM956224K24T 
</td><td> 24-port GE + 4-port HGL(CAT 7) - 56224 SVK
</td></tr><tr><td> BCM956224R24F
</td><td> 24-port GE + 4-port GE SFP - BCM56224 Reference board.
</td></tr><tr><td> BCM956300R24
</td><td> 24-port GE 56300 Switch Ref Design
</td></tr><tr><td> BCM956304R24XS
</td><td> 24-port GE (2 TX/SX) 56304 SW Ref Des w/2-HiGig + 2-10GE
</td></tr><tr><td> BCM956314R24ST
</td><td> 24-port GE + 4 HiGig/2.5GE(CAT 7) 56314 Ref Design
</td></tr><tr><td> BCM956314R24XST
</td><td> 24-port GE + 4 10GE/HiGig/2.5GE(CX4) - 56314 Ref Design
</td></tr><tr><td> <tt>BCM956334K_02</tt>/<tt>BCM956334K_03</tt>
</td><td> 24xGE + 4x10G/13HG (iPass) with BCM56334 switch
</td></tr><tr><td> BCM956500R24
</td><td> 24-port GE 56500 Switch Ref Design
</td></tr><tr><td> BCM956504R24XS
</td><td> 24-port GE (2 TX/SX) 56504 SW Ref Des w/2-HiGig + 2-10GE
</td></tr><tr><td> BCM956504R48XSP
</td><td> 48-port GE (12 w/POE) 56504 Switch Ref Design 4 - HiGig/10GE
</td></tr><tr><td> BCM95650K24
</td><td> 24-port FE + 4 port GE Switch Development Kit
</td></tr><tr><td> BCM95650R24
</td><td> 24-port FE + 4 port GE (TX or SFP) Reference Design
</td></tr><tr><td> BCM956514R24XST
</td><td> 24-port GE + 4 10GE/HiGig/2.5GE(CX4) - 56514 Ref Design
</td></tr><tr><td> BCM956514R48XSP
</td><td> 48-port GE (12 w/POE) 56514 Switch Ref Design 4 - HiGig/10GE
</td></tr><tr><td> BCM956580K16TXS
</td><td> 16-port 2.5G SFP Fibre + 4 HiGig/10GE 56580 SDK
</td></tr><tr><td> BCM956601K12D
</td><td> 12-port GE + 1-HiGig 56601 DDR SDRAM SDK
</td></tr><tr><td> BCM956601K12N
</td><td> 12-port GE + 1-HiGig 56601 Netlogic TCAM SDK
</td></tr><tr><td> BCM956602KXSN
</td><td> 1-HiGig + 1-10GE 56602 Netlogic TCAM SDK
</td></tr><tr><td> BCM95665K48
</td><td> 48-port FE + 4 port GE TX/SX + 1HiGig Switch Development Kit
</td></tr><tr><td> BCM956700K16S
</td><td> 16-port HiGig CX4 56700 SDK
</td></tr><tr><td> BCM95670K8
</td><td> 8-port 5670 GE Switch Development Kit
</td></tr><tr><td> BCM95673K2S
</td><td> 2 x 5673 10-GE + HiGig Switch Development Kit
</td></tr><tr><td> BCM95673R8
</td><td> 8-port 5673 10 GE XFP Switch Reference Design
</td></tr><tr><td> BCM95673R8CX4
</td><td> 8-port 5673 10 GE CX4 Switch Reference Design
</td></tr><tr><td> BCM95675K8
</td><td> 8-port 5675 GE Switch Development Kit
</td></tr><tr><td> BCM95675K8U
</td><td> 8-port 5675 GE Switch Development Kit - PPC8245
</td></tr><tr><td> BCM956800K20X
</td><td> 20-port 10 GE CX4 56800 SDK
</td></tr><tr><td> BCM95690K24S
</td><td> 24-port 5690 GE Switch Development Kit w/2HiGig
</td></tr><tr><td> BCM95690K24
</td><td> 24-port 5690 GE Switch Development Kit
</td></tr><tr><td> BCM95690P24REF
</td><td> 24-port 5690 GE + 5671 w/2HiGig Ports Reference Design
</td></tr><tr><td> BCM95690R24
</td><td> 24-port 5690 GE Ports Reference Design
</td></tr><tr><td> BCM95690R24S
</td><td> 24-port 5690 GE + 5671 w/2HiGig Ports Reference Design
</td></tr><tr><td> BCM95690R48S
</td><td> 48-port 5690 GE + 5670 w/4HiGig Ports Reference Design
</td></tr><tr><td> BCM95690R48X2S
</td><td> 48-port 5690 GE + 5670 w/2-HiGig Ports + 2-10-GE Ports Ref. Design
</td></tr><tr><td> BCM95691K12
</td><td> 12-port 5691 GE Switch Development Kit
</td></tr><tr><td> BCM95695K24
</td><td> 24-port 5695 GE Switch Development Kit
</td></tr><tr><td> BCM95695R24S
</td><td> 24-port 5695 GE + 5671 w/2HiGig Ports Reference Design
</td></tr><tr><td> BCM95695R24X2S
</td><td> 24-port 5695 GE + 2-port 5675 HiGig + 2-port 5674 10GE CX4
</td></tr><tr><td> BCM95695R48X2S
</td><td> 48-port 5695 GE + 5670 w/2-HiGig Ports + 2-10-GE Ports Ref. Design
</td></tr><tr><td> BCM91125CFM16
</td><td> BCM956010CS Dual 5675 Fabric + 1125H CPU
</td></tr><tr><td> BCM91125CFM8
</td><td> BCM956006CS Single 5675 Fabric + 1125H CPU
</td></tr><tr><td> BCM956501LM
</td><td> 12-port 10GE CX4 56501/5675 Line Module
</td></tr><tr><td> BCM956504LM
</td><td> 48-port GE 56504 Line Module
</td></tr><tr><td> BCM956700CFM16
</td><td> 16-HiGig 56700 Fabric + BCM1125 CPU Module
</td></tr><tr><td> BCM95674LM
</td><td> 6-port 10GE CX4 5674/5675 Line Module
</td></tr><tr><td> BCM956802LM
</td><td> 12-port 10GE CX4 56802 Line Module
</td></tr><tr><td> BCM95695LM
</td><td> 48-port GE 5695/5675 Line Module
</td></tr><tr><td> BCM956802CFM8
</td><td> BCM956006CS 56802 Fabric + 8 10GE + 1125H CPU
</td></tr><tr><td> <tt>BCM956680K24TS_02</tt>/<tt>BCM956680K24TS_05</tt>
</td><td> 25 port 1-GbE/2.5GbE Multilayer Ethernet Switch with 4 x 10-GbE/HiGig2 Uplink ports SVK
</td></tr><tr><td> <tt>BCM956624K49TS_02</tt>/ <tt>BCM956624K49TS_05</tt>
</td><td> 49 port 1-GbE Multilayer Ethernet Switch with 4 x 10-GbE/HiGig2 Uplink ports and External Table Expansion SVK
</td></tr><tr><td> <tt>BCM956624R49S_02</tt>
</td><td> 49 port 1-GbE Multilayer Ethernet Switch with 4 x 10-GbE SFP+ Uplink ports BCM56624 reference board
</td></tr><tr><td> <tt>BCM956634K49S_02</tt>
</td><td> 49xGE + 4 x XAUI/HG (iPass) with BCM56634 switch
</td></tr><tr><td> <tt>BCM956636K25S_02</tt>
</td><td> 24x1GE + 2x12HG + 4x16HG (iPass) with BCM56636 switch
</td></tr><tr><td> <tt>BCM956638K8XS_02</tt>
</td><td> 4x12HG + 4x16HG (iPass) with BCM56638 switch
</td></tr><tr><td> <tt>BCM956639K25S_02</tt>
</td><td> 24x1GE + 8x10G (iPass) with BCM56639 switch
</td></tr><tr><td> <tt>BCM956526K29S_02</tt>
</td><td> 28x1GE + 6x12HG (iPass) with BCM56526 switch
</td></tr><tr><td> <tt>BCM956685K24TS_02</tt>
</td><td> 24 port 1-GbE/2.5GbE Multilayer Ethernet Switch with 4 x 10-GbE/HiGig2 Uplink ports SVK
</td></tr><tr><td> <tt>BCM956820K24XG_02</tt>/<tt>BCM956820K24XG_05</tt>
</td><td> 24 x 10-GbE + 4 x 1-GbE Multilayer Ethernet Switch SVK
</td></tr><tr><td> <tt>BCM956820R24XG_02</tt>
</td><td> 24 x 10-GbE + 4 x 1-GbE BCM56820 Multilayer Ethernet Switch Reference board with SFP+ interface.
</td></tr><tr><td> <tt>BCM956825K24XG_02</tt>
</td><td> 16 x 10-GbE + 8 x 20-Gbps HG2 + 1 x 1-GbE Multilayer Ethernet Switch Reference board.
</td></tr><tr><td> <tt>BCM956720K16S_02</tt>/<tt>BCM956720K16S_05</tt>
</td><td> 16-Port, 256-Gbps Switch Fabric + 4 x 1-GbE SVK
</td></tr><tr><td> <tt>BCM956725K16S_02</tt>/<tt>BCM956725K16S_05</tt>
</td><td> 8-Port (20Gbps) + 4-port (16Gbps) Switch Fabric + 4 x 1-GbE SVK
</td></tr><tr><td> BCM988020QSK24X2
</td><td> Carrier Ethernet 24-port GE + 2-port 10GbE Reference Design (also known as Metrocore)
</td></tr><tr><td> BCM988130FK24X2
</td><td> Carrier Ethernet 24-port GE + 2-port 10GbE Reference Design (also known as Polaris Line card)
</td></tr><tr><td> BCM988025QSK24X2
</td><td> Carrier Ethernet 24-port GE + 2-port 10GbE Reference Design (also known as C2 SVK)
</td></tr><tr><td> <tt>BCM988130K_02</tt>
</td><td> BCM88130 SVK with 96 fabric serdes connections (24 iPass ports)
</td></tr><tr><td> <tt>BCM988235K_02</tt>
</td><td> BCM88235 SVK with 4 HiGig2 ports (4 iPass), 2 flow control ports (2 iPass)
</td></tr><tr><td> BCM953724R26WS
</td><td> 26-Port, 26-Gbps Integrated Multilayer Switch and CPU
</td></tr><tr><td> BCM956628K8TS
</td><td> 8 port 10-GbE/HiGig2 Multilayer Ethernet Switch with External Table Expansion
</td></tr><tr><td> BCM956620K24TS
</td><td> 24 port 1-GbE Multilayer Ethernet Switch with 4 x 10-GbE/HiGig2 Uplink ports
</td></tr><tr><td> BCM956684K24TS
</td><td> 24 port 1-GbE/2.5GbE Multilayer Ethernet Switch with 4 x 10-GbE/HiGig2 Uplink ports
</td></tr><tr><td> BCM956725K16S
</td><td> 8 Port, 20-Gbps + 4 Port, 16-Gbps HiGig2 Switch Fabric
</td></tr><tr><td> BCM956626K8TS
</td><td> 25 port 1-GbE Multilayer Ethernet Switch with 6 x 10-GbE/HiGig2 Uplink ports and External Table Expansion
</td></tr><tr><td> BCM956629K24S
</td><td> 25 port 1-GbE Multilayer Ethernet Switch with 8 x 10-GbE/HiGig2 Uplink ports and External Table Expansion
</td></tr><tr><td> BCM956224R50T
</td><td> 50-port GE + 2-port HGL(CAT 7) - 2 X BCM56224
</td></tr><tr><td> BCM956024R50T
</td><td> 48-port FE + 2-port GE + 2-port HGL(CAT 7) - 2 X BCM56024
</td></tr><tr><td> <tt>BCM956524K24S_02</tt>
</td><td> 24xGE + 4 x XAUI/HG (iPass) with BCM56524 switch
</td></tr><tr><td> <tt>BCM956521K_02</tt>
</td><td> 24-Port GbE Multilayer Switch with 10 GbE/HiGig2 Uplink Ports
</td></tr><tr><td> <tt>BCM956740K_02</tt>
</td><td> 480/640 Gbps Switch fabric
</td></tr><tr><td> <tt>BCM956743K_02</tt>
</td><td> 480/640 Gbps Switch fabric
</td></tr><tr><td> <tt>BCM956840K_02</tt>
</td><td> 320/480/640 Gbps Ethernet Multilayer Switch
</td></tr><tr><td> <tt>BCM956845K_02</tt>
</td><td> 320/480/640 Gbps Ethernet Multilayer Switch
</td></tr><tr><td> BCM956846KQ
</td><td> 320/480/640 Gbps Ethernet Multilayer Switch
</td></tr><tr><td> BCM98727MC
</td><td> 16 port Ipass to SFP+ Media Converter
</td></tr><tr><td> BCM956534K24TS
</td><td> 24xGE + 4 x XAUI/HG (iPass) with BCM56534 switch
</td></tr><tr><td> BCM956538K49S
</td><td> 48-Port GbE Multilayer Switch with Four 10-GbE/HiGig2 Uplink Ports SVK
</td></tr></tbody></table><p>Note: The flash sizes of some old BCM53XX platforms are 4 MBytes only.
As the code size of SDK increases, the 4 MB flash is not enough for this
release. Replace the flash to 8 MB or above for 
those reference designs.
<p><br><br><hr noshade><br><br>
    <a name=section_Appendix_A>
    <h3>Section 8:  SDK Externally Licensed Software Components
</h3>
<p>SDK contains a number of third-party externally licensed software components.
This appendix contains information regarding these components, the license for each of these components, and where these components are used in SDK.
<h3>Table 117:   EXTERNALLY LICENSED SOFTWARE COMPONENTS
</h3>
<table cellpadding="4" cellspacing="0" border="1" summary="section"><tbody><tr><td><tr><td><b> Component
 </b></td><td><b> Origin
 </b></td><td><b> Location in source tree
 </b></td><td><b> License terms and conditions
</b></td></tr><tr><td> EDITLINE
 </td><td> /afs/athena.mit.edu/contrib/sipb/src/editline
 </td><td> src/sal/appl/editline
 </td><td>  See  <a href="#EDITLINE_license_terms_and_conditions">Section 8.1:  EDITLINE License terms and conditions
</a> </td></tr><tr><td> CINT
 </td><td> http://www.gnu.org/software/bison/
 </td><td> src/appl/cint/<tt>cint_parser</tt>.[ch]
 </td><td>  See  <a href="#CINT_license_terms_and_conditions">Section 8.2:  CINT parser license terms and conditions
</a> </td></tr><tr><td> CES Driver
 </td><td> BATM Advanced Communications Ltd
 </td><td> src/soc/ces/<tt>nemo_driver</tt>/*.[ch], src/soc/ces/clsbuilder/*.[ch]
 </td><td>  See  <a href="#CES_Driver_license_terms_and_conditions">Section 8.3:  Circuit Emulation Service (CES) Driver terms and conditions
</a> </td></tr></tbody></table><br><hr noshade><a name="EDITLINE_license_terms_and_conditions"></a>
<h3>Section 8.1:   EDITLINE License terms and conditions
</h3>
<blockquote><pre>This package was obtained from the following location, and was modified
for purposes of inclusion into the SOC diagnostics shell.

Removed files:
        MANIFEST Make.os9 Makefile os9.h sysos9.c testit.c unix.h

Added files:
        sysvxworks.c Makefile

Changed functionality:
        Merged unix.h into editline.h
        M-P and M-N now behave like tcsh.
        <tt>list_history</tt>(count) routine displays history
        Commented out completion
        Changed <tt>rl_complete</tt> and <tt>rl_list_possib</tt> into caller-settable
                global functions
        Don't ring bell on TAB if word is already complete

------------------------------------------------------------------------------

Index of /afs/athena.mit.edu/contrib/sipb/src/editline

[     ] Name                   Last modified     Size  Description
  ------------------------------------------------------------------------

 [DIR]  Parent Directory       11-May-99 03:40      -
 [   ]  MANIFEST               07-Jul-97 11:20     1k
 [   ]  Make.os9               07-Jul-97 11:20     1k
 [   ]  Makefile               01-Sep-97 00:34     2k
 [   ]  complete.c             07-Jul-97 11:20     4k
 [   ]  editline.3             07-Jul-97 11:20     5k
 [   ]  editline.c             07-Jul-97 11:20    25k
 [   ]  editline.h             07-Jul-97 11:20     2k
 [   ]  os9.h                  07-Jul-97 11:20     1k
 [   ]  sysos9.c               07-Jul-97 11:20     1k
 [   ]  sysunix.c              07-Jul-97 11:20     3k
 [   ]  testit.c               07-Jul-97 11:20     1k
 [   ]  unix.h                 07-Jul-97 11:20     1k

  ------------------------------------------------------------------------

$Revision: 1.3 $

This is a line-editing library.  It can be linked into almost any
program to provide command-line editing and recall.

It is call-compatible with the FSF readline library, but it is a
fraction of the size (and offers fewer features).  It does not use
standard I/O.  It is distributed under a "C News-like" copyright.

Configuration is done in the Makefile.  Type "make testit" to get
a small slow shell for testing.

This contains some changes since the posting to comp.sources.misc:
    -   Bugfix for completion on absolute pathnames.
    -   Better handling of M-n versus showing raw 8bit chars.
    -   Better signal handling.
    -   Now supports termios/termio/sgttyb ioctl's.
    -   Add M-m command to toggle how 8bit data is displayed.
The following changes, made since the last public release, come from
J.G. Vons &lt;vons@cesar.crbca1.sinet.slb.com&gt;:
    -   History-searching no longer redraws the line wrong
    -   Added ESC-ESC as synonym for ESC-?
    -   SIGQUIT (normally ^\) now sends a signal, not indicating EOF.
    -   Fixed some typo's and unclear wording in the manpage.
    -   Fixed completion when all entries shared a common prefix.
    -   Fixed some meta-char line-redrawing bugs.

Enjoy,
        Rich $alz
        &lt;rsalz@osf.org&gt;

 Copyright 1992,1993 Simmule Turner and Rich Salz.  All rights reserved.

 This software is not subject to any license of the American Telephone
 and Telegraph Company or of the Regents of the University of California.

 Permission is granted to anyone to use this software for any purpose on
 any computer system, and to alter it and redistribute it freely, subject
 to the following restrictions:
 1. The authors are not responsible for the consequences of use of this
    software, no matter how awful, even if they arise from flaws in it.
 2. The origin of this software must not be misrepresented, either by
    explicit claim or by omission.  Since few users ever read sources,
    credits must appear in the documentation.
 3. Altered versions must be plainly marked as such, and must not be
    misrepresented as being the original software.  Since few users
    ever read sources, credits must appear in the documentation.
 4. This notice may not be removed or altered.
</pre></blockquote><p><br><hr noshade><a name="CINT_license_terms_and_conditions"></a>
<h3>Section 8.2:   CINT parser license terms and conditions
</h3>
<blockquote><pre>The C code for the parser CINT was generated by using GNU Bison parser
generator from the file <tt>cint_grammar</tt>.y   CINT is an optional diagnostic
tool that can be included in your system  by adding CINT to the
<tt>FEATURE_LIST</tt> in SDK compilation flags.

Removed files:
        None

Added files:
        None

Changed functionality:
        None

------------------------------------------------------------------------------
/* A Bison parser, made by GNU Bison 2.4.1.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C

      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.

   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */
</pre></blockquote><p><br><hr noshade><a name="CES_Driver_license_terms_and_conditions"></a>
<h3>Section 8.3:   Circuit Emulation Service (CES) Driver terms and conditions
</h3>
<blockquote><pre>The Circuit Emulation Services (CES) driver code provided herewith is provided
by BATM Advanced Communications Ltd (BATM) and is subject to licensing agreement
between BATM and Broadcom Corporation. 
</pre></blockquote><p></html></body>
